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