我是一名经验丰富的程序员,第一次学习Unity。我知道这是新手最基本、最常见的错误。我想我是对的,但它仍然会产生这个错误。我做错了什么?
UnassignedReferenceException:“GameManager”的变量玩家尚未分配。您可能需要在检查器中分配 GameManager 脚本的玩家变量。
我认为下面的屏幕截图提供了所需的一切。
您必须将层次结构面板中的游戏资源分配给具有 GameManager.cs 脚本组件的游戏对象
注意:如果您这样做了,您可能有多个游戏对象具有分配的脚本;如果是这种情况,请尝试对该脚本执行相同的操作。
我也是 Unity 新手,也遇到过类似的问题,但在思考发生了什么之后,我得出的结论是错误消息有点误导了我。当它试图通过建议来提供帮助时“您可能需要在检查器中分配 GameManager 脚本的玩家变量”我直接进入脚本并设置它,但错误仍然存在。
就在那时,我意识到层次结构面板中没有附加我的脚本的对象。我所做的是在运行时实例化一个对象(我的“玩家”预制件),并且它是附加了脚本的预制件。当然,我的脚本可能会添加到任意数量的对象中,并且每个对象都有自己的变量,因此每个对象都需要有自己的变量集实例。如果您希望在所有实例中设置相同的值,您可能会将变量设置为静态,但它不会出现在检查器中。因此,在预制件的脚本组件中设置变量为我解决了这个问题。
我认为一天的华夫饼就足够了 - 希望它对某人有帮助! :)