Unity中的UnassignedReferenceException

我收到了错误

UnassignedReferenceException:

甚至在编辑器中分配后?

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

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

在此处输入图像描述

 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 (); if (target != null) { target.takedmg (dmg); } } } 

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

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

为此,从项目选项卡中选择Gun脚本,然后转到资源 —> 在场景中查找参考 。 从其他GameObjects中删除Gun脚本。

在此处输入图像描述