|
@@ -20,7 +20,7 @@ namespace KairoEngine.StorySystem
|
|
|
public class StoryObject : System.Object
|
|
|
{
|
|
|
[HorizontalGroup("line", 0.3f), HideLabel] public string name;
|
|
|
- [HorizontalGroup("line", 0.7f), HideLabel, NonSerialized] public GameObject prefab;
|
|
|
+ [HorizontalGroup("line", 0.7f), HideLabel] public GameObject prefab;
|
|
|
[HideInInspector, NonSerialized] public GameObject instance;
|
|
|
}
|
|
|
|
|
@@ -57,6 +57,10 @@ namespace KairoEngine.StorySystem
|
|
|
{
|
|
|
if(storyObjects.Count > 0) storyObjectsContainer = new GameObject("StoryObjects").transform;
|
|
|
if(storyObjectsContainer != null) storyObjectsContainer.transform.parent = parent;
|
|
|
+ }
|
|
|
+
|
|
|
+ public override void Start()
|
|
|
+ {
|
|
|
if(startType == StoryInitType.OnLoad) LoadStory(storyObjectsContainer);
|
|
|
else if(startType == StoryInitType.OnEvent) GenericEvents.StartListening(eventStartName, () => LoadStory(storyObjectsContainer));
|
|
|
}
|
|
@@ -96,35 +100,29 @@ namespace KairoEngine.StorySystem
|
|
|
|
|
|
public override void OnBeforeSerialize(ObjectSerializer serializer)
|
|
|
{
|
|
|
- if(inkJSONAsset) serializer.objects.Add("inkJSONAsset", inkJSONAsset);
|
|
|
- if(storyObjectsContainer != null) serializer.gameObjecs.Add("storyObjectsContainer", storyObjectsContainer.gameObject);
|
|
|
- if(storyController != null) serializer.objects.Add("storyController", storyController);
|
|
|
+ if(inkJSONAsset != null) serializer.AddUnityObject("inkJSONAsset", inkJSONAsset);
|
|
|
+ if(storyObjectsContainer != null) serializer.AddGameObject("storyObjectsContainer", storyObjectsContainer.gameObject);
|
|
|
+ if(storyController != null) serializer.AddObject("storyController", storyController);
|
|
|
storyObjectsCount = storyObjects.Count;
|
|
|
for (int i = 0; i < storyObjects.Count; i++)
|
|
|
{
|
|
|
- serializer.objects.Add($"storyObjects_{i}", storyObjects[i]);
|
|
|
+ serializer.AddObject($"storyObjects_{i}", storyObjects[i]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public override void OnBeforeDeserialize(ObjectSerializer serializer)
|
|
|
{
|
|
|
// inkJSONAsset
|
|
|
- object obj = null;
|
|
|
- serializer.objects.TryGetValue("inkJSONAsset", out obj);
|
|
|
- if(obj != null) inkJSONAsset = (TextAsset)obj;
|
|
|
+ inkJSONAsset = (TextAsset)serializer.GetUnityObject("inkJSONAsset");
|
|
|
// storyObjectsContainer
|
|
|
- GameObject gameObject = null;
|
|
|
- serializer.gameObjecs.TryGetValue("storyObjectsContainer", out gameObject);
|
|
|
+ GameObject gameObject = serializer.GetGameObject("storyObjectsContainer");
|
|
|
if(gameObject != null) storyObjectsContainer = gameObject.transform;
|
|
|
// storyController
|
|
|
- obj = null;
|
|
|
- serializer.objects.TryGetValue("storyController", out obj);
|
|
|
- if(obj != null) storyController = (StoryController)obj;
|
|
|
+ storyController = (StoryController)serializer.GetObject("storyController");
|
|
|
// storyObjects
|
|
|
for (int i = 0; i < storyObjectsCount; i++)
|
|
|
{
|
|
|
- obj = null;
|
|
|
- serializer.objects.TryGetValue($"storyObjects_{i}", out obj);
|
|
|
+ var obj = serializer.GetObject($"storyObjects_{i}");
|
|
|
if(obj != null) storyObjects.Add((StoryObject)obj);
|
|
|
}
|
|
|
}
|