Çarpışma algılama ve hareket tipik olarak bir FPS'de nasıl ele alınır, özellikle merdiven gibi zemin yüksekliğinde (hem eğimde hem de düşüşte) küçük değişiklikler yapar?
Çarpışma algılama ve hareket tipik olarak bir FPS'de nasıl ele alınır, özellikle merdiven gibi zemin yüksekliğinde (hem eğimde hem de düşüşte) küçük değişiklikler yapar?
Yanıtlar:
Varlıklar genellikle dünya çapındaki çarpışma için dünya geometrisine (veya basitleştirilmiş bir çarpışma ağına) karşı bir kapsül (uçlarında küreler olan silindir) ile temsil edilir.
Merdivenler genellikle görünmez bir rampa ile çarpışmasızdır veya belirli bir yüksekliğin altında genellikle çarpışma çözünürlüğünün bir yan etkisi olarak yükselirsiniz. (adım boyutunun bir parçası olarak hareketle iç içe geçeceksiniz ve çözünürlük en yakın düzlem olarak yukarı doğru çıkacaktır)
Bence Unreal 3 böyle çalışıyor, ama yanılmış olabilirim. Kaynakta sınırlayıcı bir kutu hiyerarşisi gördüğümü hatırlıyorum, ancak bunun sadece savaş için olup olmadığını hatırlayamıyorum. ne olursa olsun, kapsüller basit ve hızlıdır
Unity 3D'de, en kolay yol birinci kişi denetleyicisine sahip olmaktır. Eğer basamak yüksekliği basamak ofsetinden daha yüksekse, genellikle karakter yukarı atlamak zorundadır. Ama bunu yapmanın başka bir yolu, bir kutu çarpıştırıcısı eklemek ve döndürmek, böylece karakterin bir rampa gibi kolayca merdivenlerden geçebilmesi.
Brady'nin cevabı iyidir, ancak bunu yapmak için hacky bir yol istiyorsanız, sadece bir ışını toprak çarpışma geometrisine indirebilir, hangi üçgene çarptığını anlayabilir ve daha sonra üçgen vertlerinin yüksekliğinin ağırlıklı bir ortalamasını kullanabilirsiniz. zemin yüksekliğini bulmak için.