-
Notifications
You must be signed in to change notification settings - Fork 78
Restoration Register
woctordho edited this page Oct 2, 2022
·
1 revision
如果你写了一个新的前端组件,要在读档时恢复它的状态,以DialogueBoxController
为例:
- 在class的
Awake
中写上gameState.AddRestorable(this);
,OnDestroy
中写上gameState.RemoveRestorable(this);
- 让class继承
IRestorable
interface - 定义
restorableName
,一般可以与Lua绑定用的名字相同 - 定义
DialogueBoxControllerRestoreData
,用来存储这个前端组件的状态- 这个class需要实现
IRestoreData
,并且标上[Serializable]
attribute,所有field也必须是serializable的 - 一般可以把所有field设成readonly
- Nova已经提供了
MaterialData
、RectTransformData
、TransformData
、Vector3Data
、Vector4Data
,需要存储这些object的状态时可以直接调用
- 这个class需要实现
- 定义
GetRestoreData
,用来把这个前端组件的状态保存到restore data中 - 定义
Restore
,用来根据restore data恢复这个前端组件的状态