c# - 统一保存场景
问题描述
我所有关于玩家、枪支的信息都存储在放置在它们上面的单一行为脚本中。当我按下那个按钮时,scene2 被激活。但是,我应该怎么做才能在下一个场景中“传送”我的玩家?我也想到那里我的用户界面(健康栏,子弹)。我看过一些关于单身的视频,但我不确定这是否是我的情况。有什么建议吗?
解决方案
你应该使用DontDestroyOnLoad()
. 这就是它所说的。基本上,当您加载新场景时,它不会破坏您的游戏对象。您应该从另一个场景中删除播放器预制件,并将其放入播放器脚本中:
...
void Awake()
{
DontDestroyOnLoad(gameObject);
...
}
...
这样,如果您的所有变量都存储在此脚本中,它们将被保存,因为它们不会被场景破坏。
这将保存与之关联的游戏对象。如果没有,请为孩子们制作其他变量。然后,添加多个DontDestroyOnLoad(); 在不同的语句中具有不同变量的语句。
(注意:如果你停止游戏或关闭应用程序,这不会保存它。它会通过场景保留值,而不是游戏结束或应用程序关闭。)
推荐阅读
- python - Beautifulsoup:仅在同一 tr 类中的第一行比其他
- selenium - selenium - 当密码包含“@”时发送基本身份验证
- reactjs - 在 React 中同步测量 DOM 节点
- python - 将服务器文件夹中的多个文件合并为一个
- reactjs - 服务器端呈现的网页如何以及何时更新页面源?
- python - 直接在内存上压缩读取的文件数据(用于电子邮件)
- google-apps-script - 谷歌幻灯片 - 安装应用程序后未显示菜单选项
- nginx - 托管在 Kubernetes (DigitalOcean) 上的网站的最佳实践
- javascript - 错误:使用 UseState 挂钩的功能组件内部超出了最大更新深度
- r - 如何在 r 中使用 RFE 选择前 n 个变量?