2013-10-03 58 views
0
function OnCollisionEnter(theCollision : Collision) 
{ 
    if(theCollision.gameObject.name=="Spotlight") 
    { 
     Destroy(gameObject); 
     Debug.Log("Dead"); 
     dead = true; 
    } 
} 

這是我的代碼在這裏,我有一個聚光燈附在我的敵人身上,就像火炬一樣,我想要的是一旦他們走進聚光燈下,敵人就會被毀滅。用聚光燈摧毀敵人

我測試了與對手的對撞機,它工作正常,但由於某種原因,當我將它設置爲聚光燈時,根本沒有任何反應。

任何人都可以幫助我嗎?

+2

聚光燈沒有定義燈光形狀的碰撞器。如果您想知道物體何時與燈光發生碰撞,您需要以聚光燈的形狀創建碰撞機。 – MichaelHouse

+0

或[有點'數學](http://stackoverflow.com/questions/10768142/verify-if-point-is-inside-a-cone-in-3d-space)。也許稍微調整一下,這樣「點」更像是一個半徑R代表敵人最大軸的球體。 – Jerdak

+0

您可以使用Physics.SphereCast檢查聚光燈路徑上的碰撞。 – Calvin

回答

0

您可以從光源到您的表面進行光線投射。一旦找到了這條射線與你的表面的交點,你就可以控制一個膠囊或球體對撞機的XZ位置(半徑,N,半徑) - 將你的檢測腳本附加到對撞機上,你就可以工作就好像它是場景中的物體一樣。