2013-02-26 54 views

回答

2

例如,如果您想停用碰撞器,以便它們不會撞擊或反彈離開牆壁,則可以將碰撞器的「isTrigger」變量更改爲true,將其更改爲觸發器體積,而不是一個堅實的對撞機。這具有禁用它的效果 - 因爲它不會導致其他對象停止或反彈,如果他們擊中它。

例如:

function Update() { 
    if (Input.GetKeyDown(KeyCode.X)) { 
     collider.isTrigger = true; 
    } 
} 

注意之類的東西MouseOver仍然有效。

如果您想完全禁用它,您可以嘗試collider.enabled = false。我不確定這是否有效。如果沒有,您可以隨時縮小您的對撞機:

var myOldSize:Vector3; 

function DisableBoxCollider(myCollider:BoxCollider) 
{ 
    //actually just resizes it 
    myOldSize=myCollider.size; 
    myCollider.size=Vector3(0,0,0); 
} 

function EnableBoxCollider(myCollider:BoxCollider) 
{ 
    if(myOldSize!=Vector3(0,0,0)) 
     myCollider.size=myOldSize; 
} 

您可以使用上述代碼將其集成到您自己的項目中。我不會泄露所有的代碼給你,因爲否則我們會錯過學習編程和發佈在Stackoverflow上的點。但它應該可以幫助你走上正軌。嘗試並使用代碼玩一些,如果您有任何問題,請回到這裏問問他們,用一些代碼提供問題以顯示您嘗試的內容。

+0

thanx for respond。這裏iam尋找的是在一個對撞機的觸發輸入和另一個對撞機的觸發輸出之間運行的功能。可能嗎 ??這裏是代碼函數OnTriggerEnter(){if(other.gameObject.tag ==「player」){instantiate(enemy,transform.position,transform.rotation)}}現在我想讓這個實例化的敵人死亡,當玩家退出觸發不同的對撞機。如何實現這一點? – RakeshChatra 2013-02-28 07:49:48

+0

你的意思是http://docs.unity3d.com/Documentation/ScriptReference/MonoBehaviour.OnTriggerEnter.html和http://docs.unity3d.com/Documentation/ScriptReference/Collider.OnTriggerExit.html? – Joetjah 2013-02-28 08:13:38