首页 > 解决方案 > 需要澄清单例+游戏对象

问题描述

我对此仍然有些迷茫。基本上我想在多个场景中都有一个持久的游戏对象。这个游戏对象将代表玩家头像。它使用预制件显示。

我尝试将单例脚本添加到我的登录场景控制器中。我有一个public GameObject类参数,但它没有出现在检查器中,所以我可以把预制件放进去。也许我弄错了。

另外,假设我正在测试一个场景。由于单例是在登录场景中初始化的,考虑到在测试期间我什至不会加载登录场景,我如何将这个全局游戏对象预制件放入我正在测试的新场景中?

我想我只是超级困惑。我想要的只是能够使用 1 个代表玩家“头像”的脚本,包括用于显示它的预制件,并让它在整个游戏中持续存在。这可能吗?另外,当我在测试场景并且没有调用包含单例的场景时,如何获取它?

感谢任何可以帮助我的人。

标签: c#unity3dsingleton

解决方案


基本上我想在多个场景中都有一个持久的游戏对象。这个游戏对象将代表玩家头像。

DontDestroyOnLoad在应该在多个场景中持续存在的对象上使用。
如果您正在加载将 Object 设置为 的同一场景,请小心DontDestroyOnLoad,因为它将创建另一个具有DontDestroyOnLoad. 这篇文章谈到了它。
编辑(感谢yes),检查此答案中的评论。

(根据您的需要,您还可以选择更多选项,Hugo 在这篇文章中的回答有。)

我尝试将单例脚本添加到我的登录场景控制器中。我有一个公共 GameObject 类参数,但它没有显示在检查器中,所以我可以将预制件放入。也许我弄错了。

显示一些代码?很难准确地说出什么是错的。
可能是您忘记将脚本拖到游戏对象中,或者该类是静态的,等等。


推荐阅读