使用刚体的下降平台

Falling Platform using rigidbody

我有一个平台,我想在玩家踩到它后掉落。它有两个盒子对撞机。一个是因为它的物理存在,另一个是触发器。它还有一个默认为运动学的刚体,因此它不会立即掉落。然而,当玩家踩到它时,它什么也不做。谁能告诉我我的代码有什么问题吗?

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

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

 yourObject.rigidbody2D.isKinematic = false;

 }

 }

要实现某种下降平台,您不必使用 IsKinematic 函数。

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

请检查您的游戏对象标签。

我还看到你使用 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;
     }
}

另外请检查你是否将标签添加到游戏对象(我想你的意思是检查名称)

喜欢

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