void Update() { if (NarrativeManager.Get().IsPaused()) { return; } timer += Time.deltaTime; if (execList.Count > 0) { if (timer >= 0f) { NarrativeEffect effect = execList[0]; execList.RemoveAt(0); if (effect.enabled) { effect.Trigger(last_triggerer); timer = -effect.GetWaitTime(); } CheckIfEnd(); } } else if (childExecList.Count > 0) { //Still running if (timer >= 0f) { NarrativeChild child = childExecList[0]; childExecList.RemoveAt(0); float wait = child.RunIfMet(last_triggerer); timer = -wait; CheckIfEnd(); } } else { if (trigger_type == NarrativeEventType.AutoTrigger && AreConditionsMet()) { Run(); } } }
public override void OnInspectorGUI() { NarrativeEffect myScript = target as NarrativeEffect; myScript.type = (NarrativeEffectType)AddEnumField("Type", myScript.type); if (myScript.type == NarrativeEffectType.CustomInt || myScript.type == NarrativeEffectType.CustomFloat || myScript.type == NarrativeEffectType.CustomString) { myScript.target_id = AddTextField("Target ID", myScript.target_id); myScript.oper = (NarrativeEffectOperator)AddEnumField("Operator", myScript.oper); if (myScript.type == NarrativeEffectType.CustomInt) { myScript.value_int = AddIntField("Value Int", myScript.value_int); } if (myScript.type == NarrativeEffectType.CustomFloat) { myScript.value_float = AddFloatField("Value Float", myScript.value_float); } if (myScript.type == NarrativeEffectType.CustomString) { myScript.value_string = AddTextField("Value String", myScript.value_string); } } if (myScript.type == NarrativeEffectType.Move) { GenerateTargetGUI(myScript.target); myScript.value_object = (GameObject)AddGameObjectField("Target Location", myScript.value_object); } if (myScript.type == NarrativeEffectType.Show || myScript.type == NarrativeEffectType.Hide || myScript.type == NarrativeEffectType.Spawn || myScript.type == NarrativeEffectType.Destroy || myScript.type == NarrativeEffectType.DestroyHeld || myScript.type == NarrativeEffectType.StartDialogue || myScript.type == NarrativeEffectType.RunEvent || myScript.type == NarrativeEffectType.RunEventIfMet) { GenerateTargetGUI(myScript.target); } if (myScript.type == NarrativeEffectType.LockCamera) { myScript.value_object = AddGameObjectField("Target", myScript.value_object); } if (myScript.type == NarrativeEffectType.LockCamera || myScript.type == NarrativeEffectType.UnlockCamera) { myScript.value_float = AddFloatField("Zoom", myScript.value_float); } if (myScript.type == NarrativeEffectType.StartQuest || myScript.type == NarrativeEffectType.CancelQuest || myScript.type == NarrativeEffectType.CompleteQuest) { myScript.value_object = AddGameObjectField("Quest", myScript.value_object); } if (myScript.type == NarrativeEffectType.Wait) { myScript.value_float = AddFloatField("Time", myScript.value_float); } if (myScript.type == NarrativeEffectType.CallFunction) { //EditorGUIUtility.LookLikeControls(); GUILayout.BeginHorizontal(); EditorGUI.BeginChangeCheck(); { EditorGUILayout.PropertyField(sprop, new GUIContent("List Callbacks", "")); } if (GUI.changed) { serializedObject.ApplyModifiedProperties(); } GUILayout.EndHorizontal(); } if (GUI.changed) { EditorUtility.SetDirty(myScript); EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); AssetDatabase.SaveAssets(); } }