使用刚体的下降平台

时间:2015-01-24 21:15:13

标签: unity3d

我有一个平台,我想在玩家踩到它后摔倒。它有两个盒子对撞机。一个是物理存在,另一个是触发器。它还有一个刚体,默认情况下是运动学的,所以它不会立即掉落。然而,当玩家踩到它时它什么都不做。任何人都可以告诉我我的代码有什么问题吗?

var yourObject : GameObject;
 function OnTriggerEnter(Other : Collider){

 if(Other.gameObject.tag == "Player"){

 yourObject.rigidbody2D.isKinematic = false;

 }

 }

2 个答案:

答案 0 :(得分:0)

要实现各种各样的平台,您不必使用IsKinematic功能。

相反,您可以关闭Use Gravity功能。这将防止物体掉落,直到另一个具有刚体和质量大于平台质量的物体接触它。可以在下面的GIF中看到。 enter image description here

答案 1 :(得分:0)

请检查您的gameobjects标签。

我也看到你使用Rigidbody2D所以你不要在下面添加

 var yourObject : GameObject;
 function OnTriggerEnter(Other : Collider){
    if(Other.gameObject.tag == "Player"){ 
       yourObject.rigidbody2D.isKinematic = false;
    }

 }

您需要使用this

function OnTriggerEnter2D(other: Collider2D) {
     if(other.gameObject.tag == "Player"){ 
           yourObject.rigidbody2D.isKinematic = false;
     }
}

还请检查你为gameobjects添加标签(我认为你的意思是检查姓名)

function OnTriggerEnter2D(other: Collider2D) {
     if(other.gameObject.name == "Player"){  //check name
           yourObject.rigidbody2D.isKinematic = false;
     }
}