如何检测碰撞以停止Unity中的玩家移动?

时间:2019-09-28 22:37:33

标签: c# unity3d

我是一个初学者,我想知道如何让玩家在碰到障碍物时停止运动。 我尝试了这段代码,但表明它已被弃用

public class Collision : MonoBehaviour
{
    public PlayerMove move;

    void onCollisionEnter (Collision info)
    {
        if (info.Collider.tag == "Obstacle")
        {
            move.enabled = false;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

您将班级命名为act_lr。 OnCollisionEnter方法中的参数Collision不使用info,而是您自己的UnityEngine.Collision类。

将您的班级名称Collision更改为其他名称:

Collision 碰撞 public class

: MonoBehaviour

答案 1 :(得分:1)

请注意Unity中的方法,它们以大写字母开头。

OnCollisionEnter应该以大写开头,以便Unity可以识别为每次碰撞调用一次的方法。

就像scopolamin所说的那样,不要调用班级Collision:最好将它以及文件,您的班级名称文件名必须匹配才能从MonoBehaviour继承。

我假设PlayerMove是用作字符控制器的脚本。确保变量move附加了正确的脚本。