我有一个平台,我想在玩家踩到它后摔倒。它有两个盒子对撞机。一个是物理存在,另一个是触发器。它还有一个刚体,默认情况下是运动学的,所以它不会立即掉落。然而,当玩家踩到它时它什么都不做。任何人都可以告诉我我的代码有什么问题吗?
var yourObject : GameObject;
function OnTriggerEnter(Other : Collider){
if(Other.gameObject.tag == "Player"){
yourObject.rigidbody2D.isKinematic = false;
}
}
答案 0 :(得分:0)
要实现各种各样的平台,您不必使用IsKinematic
功能。
相反,您可以关闭Use Gravity
功能。这将防止物体掉落,直到另一个具有刚体和质量大于平台质量的物体接触它。可以在下面的GIF中看到。
答案 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;
}
}