Unity3d 刚体下落平台
我有一个平台,一旦玩家踩上,我就想摔下来。它有两个盒子对撞机。一个是物理存在,另一个是触发器。它还有一个刚体,默认情况下是运动学的,所以它不会直线下落。然而,当玩家踩到它时,它什么也不做。有人能告诉我我的代码出了什么问题吗Unity3d 刚体下落平台,unity3d,Unity3d,我有一个平台,一旦玩家踩上,我就想摔下来。它有两个盒子对撞机。一个是物理存在,另一个是触发器。它还有一个刚体,默认情况下是运动学的,所以它不会直线下落。然而,当玩家踩到它时,它什么也不做。有人能告诉我我的代码出了什么问题吗 var yourObject : GameObject; function OnTriggerEnter(Other : Collider){ if(Other.gameObject.tag == "Player"){ yourObject.rigidbody2D.
var yourObject : GameObject;
function OnTriggerEnter(Other : Collider){
if(Other.gameObject.tag == "Player"){
yourObject.rigidbody2D.isKinematic = false;
}
}
要实现各种类型的下降平台,无需使用
iskinetic
功能
相反,您可以关闭使用重力功能。这将防止物体坠落,直到另一个刚体质量大于平台质量的物体接触到它。如下面的GIF所示。
请检查您的gameobjects标签
我还看到您使用了Rigidbody2D,所以您不需要在下面添加
var yourObject : GameObject;
function OnTriggerEnter(Other : Collider){
if(Other.gameObject.tag == "Player"){
yourObject.rigidbody2D.isKinematic = false;
}
}
你需要使用
另外,请检查您是否将标签添加到游戏对象(我想您的意思是检查名称)
像
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;
}
}