2012-09-04 390 views
1

我已经搜索了很多关于如何在Unity 3D中保存游戏的内容。每个人都建议使用XML序列化或Player Prefs。我无法弄清楚究竟要保存什么。我的游戏是一款塔防游戏,所以当我离开我需要保存在Unity3D中保存游戏的方法

  • 塔(多个预制件,位置和每一个特定 升级,动画当前正在播放等)
  • 敌人(对多个敌人的预制件战场上,他们的立场,动画,敌人路径 ,健康等)
  • 敌人波
  • 的路径计算
  • 难度
  • 级别
  • 分数
  • 住左
  • 总计金额

应该怎么我的方法试图挽救所有这些信息。我将不得不去的粒度级别是多少? 。我可以保存每个游戏对象,并且与该游戏对象相关的所有内容都将自动保存。还是我救了每个班级? ...或者我需要保存游戏中使用的每个变量。

+0

如果您只允许在波浪间进行保存,则不必将这些数据(动画,敌人数据等)考虑在内。 –

+1

跳过保存动画信息,这是矫枉过正。与路径相同。您的引擎应该足够聪明,以根据当前游戏状态重新计算这些引擎。保存什么很难回答,这取决于你的游戏。通常情况下,您将保存当前游戏状态无法生成的值。 – Jerdak

回答

0

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

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

对于保存数千个随机对象,考虑保存控制点并恢复级别加载它们并重新生成它们周围的随机点。

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