【发布时间】:2021-04-16 10:56:34
【问题描述】:
我是 Unity 新手,开始创建我的第一个简单项目。几天来,我一直面临一个问题并进行了大量研究,但我仍然无法让它发挥作用,这是它:
据我所知,拥有一个带有“GameManager”脚本的“GameManager”对象是一个聪明的主意,该脚本包含游戏的主要功能(如果不是最佳做法,请纠正我)。所以让我们举个例子,我有场景 1 和场景 2:
场景1: -游戏管理器 -标签
在 GameManager 中有一个名为 ChangeLabelText() 的函数
场景2: -按钮 -Scene2Script
在 Scene2script 中有一个名为 ButtonOnClick() 的函数
这是我的问题:如何让 ButtonOnClick() 调用 GameManager.ChangeLabelText()? 我总是收到参考错误。
我尝试在同一个场景中执行此操作,并且效果很好,但在不同场景之间却不行。 有什么想法吗?
谢谢!
【问题讨论】:
-
这是因为当你过渡到 Scene2 时,scene1 中的 GameManager 实例“死亡”,所以它不再可用。为了解决这个问题,在 GameManager 的 Awake/Start 函数中添加“DontDestroyOnLoad”。
标签: c# unity3d game-development