Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
635
Tıklama
0
Öne Çıkarma
OnTriggerEnter'ı scriptin atanmadığı 2 obje için kullanmak...
E
4 yıl
Çavuş
Konu Sahibi

Merhabalar. Yapmak istediğim şey şu: Plane'e atadığım script ile oyundaki atıyorum küp ile kürenin çarpışıp çarpışmadığını öğrenmek istiyorum.

Bunun için Physics.ComputePenetration kullanmayı denedim. İki objeyi parametre olarak alıyor ve çarpışıp çarpışmadığını bool değeri olarak döndürüyor. Fakat bu işlem sanırım biraz zorluyor ve oyunun yavaşlamasına sebep oluyor.

Bunun alternatifi var mıdır acaba ? Yada OnTriggerEnter'ı plane'e atadığım scriptte kullanmanın bir yolu ?



B
4 yıl
Yüzbaşı

Tag ekleyerek sorunu çözebilirsin, çarpan nesnenin tagı uyuşur ise istediğin işlemi yaptırırsın.
Başka birine attıgım carpısma kodu.
< Resime gitmek için tıklayın >

< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
E
4 yıl
Çavuş
Konu Sahibi

Cevap için teşekkürler. Yalnız ben farklı bir şeyden bahsediyorum. Küp kürenin alanına girdiğinde, küpe veya küreye eklenmiş bir scriptle değil, plane'e eklenmiş bir script ile kontrol etmek istiyorum.

Aslında burada başka bir sorum daha var. Multiplayer oyun yapıyorum. Bu çarpışma hesabını server'da mı yapmalıyım yoksa plane'e atadığım script'te yapsam olur mu (güvenlik açısından)?


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @Baxa
B
4 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Excalıburr

Cevap için teşekkürler. Yalnız ben farklı bir şeyden bahsediyorum. Küp kürenin alanına girdiğinde, küpe veya küreye eklenmiş bir scriptle değil, plane'e eklenmiş bir script ile kontrol etmek istiyorum.

Aslında burada başka bir sorum daha var. Multiplayer oyun yapıyorum. Bu çarpışma hesabını server'da mı yapmalıyım yoksa plane'e atadığım script'te yapsam olur mu (güvenlik açısından)?
Neden kolay yol var iken zor yolu yapmaya calisiyorsun.?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
O
4 yıl
Yarbay

quote:

Orijinalden alıntı: Excalıburr

Cevap için teşekkürler. Yalnız ben farklı bir şeyden bahsediyorum. Küp kürenin alanına girdiğinde, küpe veya küreye eklenmiş bir scriptle değil, plane'e eklenmiş bir script ile kontrol etmek istiyorum.

Aslında burada başka bir sorum daha var. Multiplayer oyun yapıyorum. Bu çarpışma hesabını server'da mı yapmalıyım yoksa plane'e atadığım script'te yapsam olur mu (güvenlik açısından)?
Üstte ki gibi Physics.ComputePenetration yapıcaksın ama eğer kasıyor diyorsan o zaman @Baxa dediği gibi yapıcaksın başka yolu yok.

Çarpışma hesabını sunucuda yapmana gerek yok eğer bu oyunun çok önemli bir parçası değilse. Çünkü bu sunucu call(rpc) olayını çok yaparsan yavaşlıcak ve kasmaya başlıcak yine network. Ne kadar az kullanılırsa o kadar iyi. Eğer statik bir şeyle uğraşıyorsan bırak oyuncu kendi load etsin.

Ayrıca farklı bir scriptten kontrol etmek performans olarak iyi değil onun yerine ufak scriptleri atayarak yapmak yine daha iyi yoksa her objenin fiziğini sürekli kontrol ettirmek yine oyunu kastırır benim görüşüm.





< Bu mesaj bu kişi tarafından değiştirildi Okeanix -- 15 Temmuz 2019; 14:55:44 >
Bu mesaja 1 cevap geldi.
E
4 yıl
Çavuş
Konu Sahibi

quote:

Orijinalden alıntı: Baxa

Neden kolay yol var iken zor yolu yapmaya calisiyorsun.?

Alıntıları Göster
Multiplayer oyunda hesapları server'da yapmak gerekmiyor mu?



E
4 yıl
Çavuş
Konu Sahibi

Kontrol ettiğim hero ile rakip kulenin alanına girersem kulenin canı azalmaya başlayacak. Çarpışma bu.

Call olayı ise update'in içinde her frame'de 1 kere oluyor. Yürüme ve kuleye vurma olayını aynı call gönderiyor. Dolayısıyla fazladan call gibi bir sorun yok.

Farklı bir scriptten kontrol etmek derken Kuleye atadığım script ile kontrol ediyorum ama göndermeyi plane'e atadığım script ile yapıyorum. (Zaten herşeyi plane'e atadığım script üzerinden yapıyorum.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Zafer Korkmaz
O
4 yıl
Yarbay

quote:

Orijinalden alıntı: Excalıburr

Kontrol ettiğim hero ile rakip kulenin alanına girersem kulenin canı azalmaya başlayacak. Çarpışma bu.

Call olayı ise update'in içinde her frame'de 1 kere oluyor. Yürüme ve kuleye vurma olayını aynı call gönderiyor. Dolayısıyla fazladan call gibi bir sorun yok.

Farklı bir scriptten kontrol etmek derken Kuleye atadığım script ile kontrol ediyorum ama göndermeyi plane'e atadığım script ile yapıyorum. (Zaten herşeyi plane'e atadığım script üzerinden yapıyorum.
Herkes farklı şekilde halleder o yüzden zaten hallettiysen sorun değil.

Moba tarzı bir kule yapıcak olsam. Kulenin etrafına yuvarlak bir collider oluşturur ve içine girdiğinde kule scriptinde can azaltma fonksiyonunu çalıştırırım. En performans böyle yapılıyor. Eğer kule altına girdiyse ontriggerenter çalışır zaten other'dan giren heronun kule altında bool'unu true döndürebilirsiniz.

Kulenin kendi colliderı varsa ve nasıl 2. collider atıcam diyorsan child objesi (yani altına boş bir obje oluşturabilirsın) sonra ona atıcağın scriptle üstündeki ona bağlı objeyi çalıştırıp oradanda playere kod gönderebilirsin. Veya kule zaten statik bir obje olduğu için onu child yapabilirsin.





< Bu mesaj bu kişi tarafından değiştirildi Okeanix -- 15 Temmuz 2019; 18:9:4 >
Bu mesaja 1 cevap geldi.
E
4 yıl
Çavuş
Konu Sahibi

Aynen zaten dediğiniz gibi kuleye sphere collider ekleyip genişletmiştim. O şekilde kullanıyorum. Teşekkürler ilginiz alakanız için :)




Bu mesajda bahsedilenler: @Zafer Korkmaz
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.