Unity中的UnassignedReferenceException

时间:2018-03-24 16:05:25

标签: c# unity3d

我收到错误

  

UnassignedReferenceException:

即使在编辑器中分配了它?

我认为以下屏幕截图提供了所需的一切。

下面的屏幕截图显示muzzleFlash变量已分配给它但仍然导致错误。

enter image description here

using UnityEngine;
public class GUN : MonoBehaviour 
{

    public float dmg =10;
    public float range=100;
    public Camera fpscam;
    public ParticleSystem muzzleFlash;

    void Update () 
    {

        if (Input.GetMouseButtonDown(0)) 
        {
            shoot ();
        }
    }   

    void shoot ()
    {   
        muzzleFlash.Play ();
        RaycastHit hit;

        if (Physics.Raycast (fpscam.transform.position, fpscam.transform.forward, out hit, range))
        {
                Debug.Log (hit.transform.name);
                Target target = hit.transform.GetComponent<Target> ();

                if (target != null) 
                {
                    target.takedmg (dmg);
                }
        }
}

1 个答案:

答案 0 :(得分:0)

您的屏幕截图显示该内容已分配给muzzleFlash变量。

你很可能错误地将Gun脚本附加到另一个GameObject。执行此操作时,该脚本实例没有为其muzzleFlash变量分配任何内容。找到Gun附加到的位置并将其删除。

为此,请从“项目”标签中选择Gun脚本,然后转到资产 ---&gt; 在场景中查找参考。从其他GameObjects中删除Gun脚本。

enter image description here