Example #1
0
 private static void GetCondition(TimelineControllerAction action)
 {
     action.Conditional = EditorGUILayout.Toggle("Is Conditional", action.Conditional);
     if (action.Conditional)
     {
         action.conditionFlag = EditorGUILayout.Toggle("Condition", action.conditionFlag);
     }
 }
Example #2
0
    private void GetAction(TimelineControllerAction action, string lable)
    {
        GUILayout.BeginVertical("box");

        EditorGUILayout.LabelField(lable, EditorStyles.boldLabel);

        action.Action = (TimelineControllerAction.TimeMachineAction)
                        EditorGUILayout.EnumPopup("Action", action.Action);

        switch (action.Action)
        {
        case TimelineControllerAction.TimeMachineAction.None:
            break;

        case TimelineControllerAction.TimeMachineAction.JumpToClip:

            var names = clip.clip.parentTrack.GetClips().Select(c => c.displayName).ToList();

            var selectedIndex = names.IndexOf(action.markerToJumpTo);

            action.markerToJumpTo = names[EditorGUILayout.Popup(
                                              "Clip Name",
                                              selectedIndex == -1 ? 0 : selectedIndex,
                                              names.ToArray()
                                              )];

            GetCondition(action);
            break;

        case TimelineControllerAction.TimeMachineAction.Pause:
            GetCondition(action);
            break;

        case TimelineControllerAction.TimeMachineAction.TriggerEvent:
            if (clip.events)
            {
                var eNames  = clip.events.events.Select(e => e.Name).ToList();
                var indexOf = eNames.IndexOf(action.EventName);
                action.EventName = eNames[EditorGUILayout.Popup(
                                              "Event Name",
                                              indexOf == -1 ? 0 : indexOf,
                                              eNames.ToArray()
                                              )];
            }
            else
            {
                action.EventName = EditorGUILayout.TextField("Event name", action.EventName);
            }

            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        GUILayout.EndVertical();
    }