应用暂停时在 Unity 中序列化什么

What to serialize in Unity when app pauses

我正在开发一款手游,场景包含:

例如,当我接到来电时,我需要序列化什么?

通过阅读Unity文档,我可以看到有一个built in serialization,是真的吗?

我的问题是:

  1. 我可以序列化 3 个单例 classes 吗? (其中一位是游戏经理) 我以为我不能序列化 static classes
  2. unity 是否使用内置序列化来存储有关预制件转换的信息,以及附加的其他组件(如 AudioSource 属性、脚本和动画)
  3. 如果动画在播放过程中暂停会怎样?

我不想在暂停游戏并重新开始时丢失关键信息。

对于 1.2.:

通常,您不应该像 GameManager 那样序列化 类,或者像 Transform 这样的组件。相反,序列化定义其状态 的 值。例如,您可以序列化 positionrotationscale(它们是像 Vector3Quaternion 这样的简单结构),并设置 transform 暂停后使用这些值。

3.:

您可以通过以下方式轻松暂停动画:

animator.enabled = false;

最后:

考虑使用 Time.timeScaleTime.fixedDeltaTime 来暂停游戏。