visual-studio - 被击杀的敌人应该在重装后保持被击杀
问题描述
我想在我的游戏中添加一个保存系统。因此,当我重新引导场景时,被杀死的敌人不应该再次出现。我想过给每个敌人一个特定的 id 并在他们被杀时保存它。OnStart 然后我会检查敌人是否出现在保存的列表中。在我的场景中保存和加载的更有效方法是什么?干杯费边
解决方案
您提出的绝对是一个有效的解决方案,但是您可以采取一些措施来显着提高性能:
假设您最终为每个单元提供了一个唯一的 ID,并且您最终在会话之间保存到一个文件中。这完全没问题,但是每次在游戏中的场景之间切换或每次杀死敌人时都保存和读取文件会很慢而且效率低下!
如果您添加一个在场景之间运行的脚本(具有 DontDestroyOnLoad),其中包含您杀死的单位的静态哈希图/字典,您可以在每次重新加载场景时从那里读取数据。因为它是一个哈希表,所以当你添加更多单元时它不会变得更加低效,而且因为它是一个简单的对象,不需要你读写文件,你可以做很多次在您的游戏中而不影响性能。
然后,剩下的就是每当您的用户“保存”游戏(假设您想在游戏会话之间保持状态),您将哈希图/字典中的数据保存到您的文件中,并且每当用户加载您设置的游戏时基于您的文件的哈希图/字典中的数据。
推荐阅读
- python - 查找匹配和不匹配的 recs 熊猫
- sql - Oracle中如何根据列名选择列
- jasper-reports - 比较具有多个值的字符串
- azure - Azure 存储库:拉取请求中的无限合并冲突
- ruby-on-rails - 在 VS CODE 中使用 ruby-debug-ide 调试 Rspec
- sql - sqflite 中的版本号
- javascript - 存储对象数组 ang 然后检查上一个和下一个项目
- java - 需要在 java 中的 Android 10 设备中的 Arraylist 中显示所有图库图像
- c# - C# Windows 窗体执行过程
- flutter - 当在文本字段中输入字段中的数据时,Flutter Firestore 显示文档 ID