首页 > 解决方案 > 被击杀的敌人应该在重装后保持被击杀

问题描述

我想在我的游戏中添加一个保存系统。因此,当我重新引导场景时,被杀死的敌人不应该再次出现。我想过给每个敌人一个特定的 id 并在他们被杀时保存它。OnStart 然后我会检查敌人是否出现在保存的列表中。在我的场景中保存和加载的更有效方法是什么?干杯费边

标签: visual-studiounity3dpersistencegame-engine

解决方案


您提出的绝对是一个有效的解决方案,但是您可以采取一些措施来显着提高性能:

假设您最终为每个单元提供了一个唯一的 ID,并且您最终在会话之间保存到一个文件中。这完全没问题,但是每次在游戏中的场景之间切换或每次杀死敌人时都保存和读取文件会很慢而且效率低下!

如果您添加一个在场景之间运行的脚本(具有 DontDestroyOnLoad),其中包含您杀死的单位的静态哈希图/字典,您可以在每次重新加载场景时从那里读取数据。因为它是一个哈希表,所以当你添加更多单元时它不会变得更加低效,而且因为它是一个简单的对象,不需要你读写文件,你可以做很多次在您的游戏中而不影响性能。

然后,剩下的就是每当您的用户“保存”游戏(假设您想在游戏会话之间保持状态),您将哈希图/字典中的数据保存到您的文件中,并且每当用户加载您设置的游戏时基于您的文件的哈希图/字典中的数据。


推荐阅读