C# 光线投射代码不适用于 Unity

本文关键字:适用于 Unity 不适用 代码 光线投射 | 更新日期: 2023-09-27 18:33:37

嗨,所以我写了一些代码来创建跟随屏幕上鼠标位置的光线投射,我已经设置了枪,并且我用对撞机等正确放下了枪管,但我不断收到错误:NullReferenceException:对象引用未设置为对象的实例。我只是无法弄清楚问题是什么,这是我的代码:

    void Update ()
    {
        if (gun.active) {
                    if (Input.GetButtonDown ("Fire1")) {
                            Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                            RaycastHit hit = new RaycastHit ();
                            if (Physics.Raycast (ray, out hit)) {
                                    if (hit.collider.gameObject.name == "barrel") {
                                            Debug.Log ("Hit the Barrel");
                                            Destroy (hit.collider.gameObject);
                                    }
                            }
                    }
            }
    }

C# 光线投射代码不适用于 Unity

您的Camera编辑器中未标记为main摄像机。

这就是为什么你的代码找不到它,因此它抛出异常的原因。