【发布时间】:2015-09-16 15:19:36
【问题描述】:
我正在将 Unity 5.2.0f3 用于当前项目,该项目将玩家置于模拟工厂的管理角色。玩家可以选择在游戏期间雇佣额外的工人以加快生产速度。玩家还可以选择不同的楼层布局(Unity 场景)。我遇到的麻烦是,由于场景变化,每次加载不同的布局时,所有额外的工作人员都会被销毁。
我尝试将 DontDestroyOnLoad(gameObject) 添加到 Start() 函数,但没有任何好处。一段时间以来,我一直在摸不着头脑,因此感谢您对此提供的所有帮助。
编辑:忘记添加相关代码..
我有两个脚本。 HiringManager.cs 用于实例化额外的工人,并附加到一个空的游戏对象,而 WorkerAI.cs 附加到每个工人的游戏对象并处理工人的行为。
实例化额外工作人员的代码 (HiringManager):
public void HireWorker(string name) {
_worker = Instantiate (worker) as GameObject;
_worker.transform.parent = GameObject.Find ("Workers").transform;
_worker.transform.position = new Vector2(-100f, -100f);
_worker.name = name;
_worker.tag = "New Worker";
_workerAI = _worker.GetComponent<NWorker.WorkerAI>();
_workerAI.isDragging = true;
}
以及我尝试过的代码(WorkerAI):
void Start()
if (CompareTag("New Worker")) {
DontDestroyOnLoad(gameObject);
}
}
【问题讨论】:
-
您可以通过为初学者编写代码来做到这一点。如果您的代码有问题,请认真注意。当他们看不到代码时,如何知道您在做什么您所看到的.. 还学习使用您可以使用的工具,例如调试器.. 逐步检查您的代码并尝试查明发生故障的位置..
-
相当基本,但我在我的问题中添加了相关代码。此外,我知道在这种情况下唯一没有帮助的 Unity 调试器是帧调试器。我不确定我错过了什么或者我到底做错了什么。那是我的问题。
-
这里有 Visual Studio 调试器,或者你用来编写 C# 代码的任何其他程序。Unity 默认有一些东西,但我不记得它是什么我的脑袋。
-
我正在使用 Notepad++ 进行脚本编辑,但我可以试试 VS 调试器,看看它是否能告诉我一些信息。