-
Notifications
You must be signed in to change notification settings - Fork 89
Restoration Register
woctordho edited this page Oct 2, 2022
·
1 revision
如果你写了一个新的前端组件,要在读档时恢复它的状态,以DialogueBoxController为例:
- 在class的
Awake中写上gameState.AddRestorable(this);,OnDestroy中写上gameState.RemoveRestorable(this); - 让class继承
IRestorableinterface - 定义
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恢复这个前端组件的状态