Sınırlayıcı hacim hiyerarşilerine (BVH) bakın. Çarpışmaların hesaplanmasında en çok çarpışma tespitinde veya çarpışmaların hesaplanmasında gerekli olan kontrol sayısını azaltmak için veya nesnelerde frustum kaldırma işlemi yapmak için kullanılırlar. Zaten küreler kullandığınız için, AABB gibi diğer hacimler daha verimli olabilmesine rağmen bir küre ağacı öneririm . Unity'nin hiç kullanmadığım şeyler için ne tür bir desteğe sahip olduğundan emin değilim, ancak muhtemelen bunun için zaten çarpışma algılama veya motorun parçalarını oluşturmada bir şey var.
Temel olarak, birbirine yakın olan düşmanları birden fazla üst alanda gruplandırmak istersiniz. Bir birim taşındığında, her düşmanı kontrol etmek yerine ana küreye karşı tetik küresini kontrol edersiniz. Tetikleyici küre ana küre ile kesişirse, içindeki her düşmanı kontrol edersiniz. Eğer değilse, içindeki tüm düşmanları atabilirsiniz. Her bir küre için maksimum küre büyüklüğüne veya düşman sayısına dayalı olarak birden çok küre seviyesi oluşturmak ve kontrolü en üst düzey bir küre temelinde yapmak istersiniz. O zaman her düşmanı kontrol etmek için her bir düşmanı kontrol etmek zorunda kalmadan ağaçtan aşağı inmek önemlidir.
Her kare için gerekli adımlar:
- Düşmanları hareket ettir
- Yeni düşman pozisyonları için BVH'yi yeniden oluşturun / güncelleyin
- Birimleri hareket ettirin ve küre ağacına karşı kontrol edin.
Bu, çok sayıda düşman olduğunda gerekli kontrolleri azaltabilir, ancak ağacın güncellenmesi ve depolanması yükü, çok fazla olmadığında buna değmeyebilir. Neyin peşinde olduğunu bilmek için Yüksek Komutan'a aşina değilim, bu yüzden sadece 'yüzlerce' varsayıyorum. Ek yükün sizin için buna değip değmeyeceğini öğrenmek için farklı durumlarda profil oluşturmanız gerekir.