应用暂停时在 Unity 中序列化什么
What to serialize in Unity when app pauses
我正在开发一款手游,场景包含:
- 3 个不同的游戏对象 - 每个都包含一个静态脚本
class-单例(总共 3 classes)
- 20 个带有属性脚本的 gameObject 预制件
- 1 张图片
例如,当我接到来电时,我需要序列化什么?
通过阅读Unity文档,我可以看到有一个built in serialization,是真的吗?
我的问题是:
- 我可以序列化 3 个单例 classes 吗? (其中一位是游戏经理)
我以为我不能序列化 static classes
- unity 是否使用内置序列化来存储有关预制件转换的信息,以及附加的其他组件(如 AudioSource 属性、脚本和动画)
- 如果动画在播放过程中暂停会怎样?
我不想在暂停游戏并重新开始时丢失关键信息。
对于 1. 和 2.:
通常,您不应该像 GameManager
那样序列化 类,或者像 Transform
这样的组件。相反,序列化定义其状态 的 值。例如,您可以序列化 position
、rotation
和 scale
(它们是像 Vector3
或 Quaternion
这样的简单结构),并设置 transform
暂停后使用这些值。
3.:
您可以通过以下方式轻松暂停动画:
animator.enabled = false;
最后:
考虑使用 Time.timeScale
和 Time.fixedDeltaTime
来暂停游戏。
我正在开发一款手游,场景包含:
- 3 个不同的游戏对象 - 每个都包含一个静态脚本 class-单例(总共 3 classes)
- 20 个带有属性脚本的 gameObject 预制件
- 1 张图片
例如,当我接到来电时,我需要序列化什么?
通过阅读Unity文档,我可以看到有一个built in serialization,是真的吗?
我的问题是:
- 我可以序列化 3 个单例 classes 吗? (其中一位是游戏经理) 我以为我不能序列化 static classes
- unity 是否使用内置序列化来存储有关预制件转换的信息,以及附加的其他组件(如 AudioSource 属性、脚本和动画)
- 如果动画在播放过程中暂停会怎样?
我不想在暂停游戏并重新开始时丢失关键信息。
对于 1. 和 2.:
通常,您不应该像 GameManager
那样序列化 类,或者像 Transform
这样的组件。相反,序列化定义其状态 的 值。例如,您可以序列化 position
、rotation
和 scale
(它们是像 Vector3
或 Quaternion
这样的简单结构),并设置 transform
暂停后使用这些值。
3.:
您可以通过以下方式轻松暂停动画:
animator.enabled = false;
最后:
考虑使用 Time.timeScale
和 Time.fixedDeltaTime
来暂停游戏。