刚体OnTriggerEnter给我一个错误

时间:2016-04-19 13:11:58

标签: c# unity3d

所以,我试图做无限跳线但由于某种原因OnTriggerEnter2D函数rb2D给了我一个错误,即使我做了一切让它工作(至少我是这么认为的,因为每次我这样做都会起作用。)错误在哪里,或者我在代码中遗漏了什么?

public class PlayerMovement : MonoBehaviour {

Rigidbody2D rb2D;

void Start()
{
    rb2D = GetComponent<Rigidbody2D>();
}

void Update()
{

}
void OnTriggerEnter2D(Collider2D other)
{
    other.rb2D.velocity = Vector2.zero;
    other.rb2D.AddForce(Vector2.up * jumpHeight, ForceMode2D.Impulse);
}

1 个答案:

答案 0 :(得分:3)

可能是因为您的other上没有rb2D组件,只有您附加此脚本的游戏对象。

otherCollider2D类型, 包含 您的 刚体定义rb2d

我相信你的代码应该是:

other.velocity = Vector2.zero;
other.AddForce(Vector2.up * jumpHeight, ForceMode2D.Impulse);`

注意 - 我认为velocity不属于Collider2D的一部分 - 请查看文档here