public virtual void ReceiveCompleteTrigger(TutoriaCompletelTrigger trigger) { if (trigger == completeTrigger) { DoComplete(); } }
protected void OnTriggerSettingGUI() { State skipState = (State)EditorGUILayout.EnumPopup(new GUIContent("Skip State", "Skip this task for specfic states"), _tt.skipState); if (skipState != _tt.skipState) { EditorUtility.SetDirty(_tt); Undo.RegisterCompleteObjectUndo(_tt, "Reassign skip state"); _tt.skipState = skipState; } if (isCompletedTriggerEditable) { TutoriaCompletelTrigger completeTrigger = (TutoriaCompletelTrigger)EditorGUILayout.EnumPopup(new GUIContent("Complete Trigger", "How this be triggered to complete"), _tt.completeTrigger); if (completeTrigger != _tt.completeTrigger) { EditorUtility.SetDirty(_tt); Undo.RegisterCompleteObjectUndo(_tt, "Reassign complete trigger"); _tt.completeTrigger = completeTrigger; } } else { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.EnumPopup(new GUIContent("Complete Trigger", string.Format("How this be triggered to complete, not editable for {0}.", target.GetType())), _tt.completeTrigger); _tt.completeTrigger = forceCompleteTrigger; EditorGUI.EndDisabledGroup(); } float timeoutSeconds = EditorGUILayout.FloatField(new GUIContent("Timeout Seconds", "A timeout seconds to force complete this step, if complete trigger is not fired."), _tt.timeoutSeconds); if (timeoutSeconds != _tt.timeoutSeconds) { EditorUtility.SetDirty(_tt); Undo.RegisterCompleteObjectUndo(_tt, "Reassign Timeout Seconds"); _tt.timeoutSeconds = timeoutSeconds; } if (_tt.timeoutSeconds > 0) { bool completeTutorialIfTimeout = EditorGUILayout.Toggle(new GUIContent("Complete Tutorial If Timeout", "Complete the whole tutorial if this step timeout."), _tt.completeTutorialIfTimeout); if (completeTutorialIfTimeout != _tt.completeTutorialIfTimeout) { EditorUtility.SetDirty(_tt); Undo.RegisterCompleteObjectUndo(_tt, "Reassign Complete Tutorial If Timeout"); _tt.completeTutorialIfTimeout = completeTutorialIfTimeout; } } float minEnabledSeconds = EditorGUILayout.FloatField(new GUIContent("Min Enabled Seconds", "A minimum seconds between start and complete, use this to avoid flicker."), _tt.minEnabledSeconds); if (minEnabledSeconds != _tt.minEnabledSeconds) { EditorUtility.SetDirty(_tt); Undo.RegisterCompleteObjectUndo(_tt, "Reassign Min Enabled Seconds"); _tt.minEnabledSeconds = minEnabledSeconds; } }
private static void FireCompleteTrigger(TutorialStep ts, TutoriaCompletelTrigger trigger) { if (ts != null) { foreach (TutorialTask tt in ts.tasks) { tt.ReceiveCompleteTrigger(trigger); } } }
public static void FireCompleteTrigger(TutoriaCompletelTrigger trigger) { if (currentTutorial != null && currentTutorial.isRunning) { FireCompleteTrigger(currentTutorial.currentStep, trigger); return; } #if UNITY_EDITOR // For development only when TutorialStep is drag to edit without using TutorialManager and currentTutorial=null TutorialStep ts = Object.FindObjectOfType <TutorialStep>(); if (ts != null) { FireCompleteTrigger(ts, trigger); } #endif }