我是Unity的初学者,遇到了一个问题,我无法在任何一块板上找到答案。创建一个非常基本的Unity C#脚本,我的Awake()
函数中包含以下代码行:
Assert.IsNotNull(sfxJump);
Assert.IsNotNull(sfxDeath);
Assert.IsNotNull(sfxCoin);
第三个断言“
即使在检查员中设置了硬币Assert.IsNotNull(sfxCoin)
,null
也将以AudioClip
的形式抛出:
检查器脚本值:
但是-这是令我感到困惑的部分-由于某些原因,{{1}在同一脚本中被{{1}调用时{strong>不是 sfxCoin
}}常规
因此,看来Unity确实向代码注册了对象-最终-但断言因初始的null
,OnCollisionEnter()
和Awake()
方法而失败。
这只发生在Start()
上。 Update()
和sfxCoin
没有这个问题。
任何帮助将不胜感激
整个脚本如下:
sfxJump
答案 0 :(得分:0)
对不起,我发现了问题所在。
游戏对象的第二个实例也使用没有设置sfxCoin的相同脚本。它隐藏在层次结构中的某个节点下,因此我没有看到它。
就像我说的那样,我是一个初学者。