【问题标题】:Approach to Saving a game in Unity3D在 Unity3D 中保存游戏的方法
【发布时间】:2012-09-04 10:32:13
【问题描述】:

我搜索了很多关于如何在 Unity 3D 中保存游戏的信息。每个人都建议使用 XML 序列化或 Player Prefs。我无法弄清楚到底要保存什么。我的游戏是塔防游戏,所以退出时需要保存

  • 塔(多个预制件,位置和每个在特定的 升级、当前播放的动画等)
  • 敌人(战场上的多个敌人预制件,他们​​的位置,动画,敌人路径 、健康等)
  • 敌人波
  • 路径计算
  • 难度
  • 级别
  • 得分
  • 活下去
  • 总金额

尝试保存所有这些信息的方法应该是什么。我必须达到的粒度级别是多少? .我可以保存每个游戏对象吗,与该游戏对象相关的所有内容都将自动保存。还是我保存每一堂课? ...还是我需要保存游戏中使用的每个变量。

【问题讨论】:

  • 如果你只允许在波次之间保存,你就不必考虑那么多数据(动画、敌人数据等)。
  • 跳过保存动画信息,这太过分了。与路径相同。您的引擎应该足够聪明,可以根据当前游戏状态重新计算那些。保存什么更难回答,这真的取决于你的游戏。通常,您会保存当前游戏状态无法生成的值。

标签: save unity3d


【解决方案1】:

这取决于您的代码设计。但避免保存所有数据(如序列化)。所有具有初始默认值或对播放器不重要的(例如动画位置)都应仅保存更改的属性。加载游戏后,您应该从头开始创建对象,初始化它们并从保存的文件中设置值。

对于简单的游戏可以建议使用 Player Prefs 来保存当前级别、分数等信息。

为了保存数千个随机对象,请考虑保存控制点并恢复关卡加载它们并在它们周围重新生成随机点。

另外一个好的方法是将数据保存到网络云中。

【讨论】:

    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    相关资源
    最近更新 更多