【问题标题】:Killed enemies should stay killed after relad [closed]被击杀的敌人应该在 relad 后保持被击杀[关闭]
【发布时间】:2021-03-13 09:55:30
【问题描述】:

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

【问题讨论】:

    标签: visual-studio unity3d persistence game-engine


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 很好,这听起来像是一个非常好的解决方案。感谢您分享您的想法:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多