/// <summary> /// constructor taking a serializable task /// </summary> public Task(TaskList tl, SerializableTask task) { TaskDelay = task.TaskDelay; TaskList = tl; GameObject = task.GameObject; TaskName = task.TaskName; Description = task.Description; GOName = task.GOName; foreach (var taskEvent in task.TaskEvents) { switch (taskEvent.TypeName) { case "TransformTaskEvent": { TaskEvent newTaskEvent = new TransformTaskEvent(taskEvent); newTaskEvent.Task = this; this.TaskEvents.Add(newTaskEvent); } break; case "AnimationTaskEvent": { TaskEvent newTaskEvent = new AnimationTaskEvent(taskEvent); newTaskEvent.Task = this; this.TaskEvents.Add(newTaskEvent); } break; } } }
/// <summary> /// constructor, takes an actual taskevent and serialize it into its internal structure /// called during serialization /// </summary> public SerializableTaskEvent(TaskEvent taskEvent) { if (taskEvent != null) { TypeName = taskEvent.GetType().Name; switch (TypeName) { case "TransformTaskEvent": { TransformTaskEvent castedEvent = taskEvent as TransformTaskEvent; StartPos = castedEvent.StartPos; EndPos = castedEvent.EndPos; StartRotation = castedEvent.StartRotation; EndRotation = castedEvent.EndRotation; Duration = castedEvent.Duration; } break; case "AnimationTaskEvent": { AnimationTaskEvent castedEvent = taskEvent as AnimationTaskEvent; GameObject = castedEvent.GameObject; AnimatorParam = castedEvent.AnimatorParam; AnimatorParamValue = castedEvent.AnimatorParamValue; ModifyAnimatorParam = castedEvent.ModifyAnimatorParam; AnimatorLayer = castedEvent.AnimatorLayer; AnimatorLayerAmount = castedEvent.AnimatorLayerAmount; ModifyAnimatorLayer = castedEvent.ModifyAnimatorLayer; } break; } } }
public void DisplayAnimationTaskEventIOfTask(Task t, int index) { AnimationTaskEvent tte = t.TaskEvents[index] as AnimationTaskEvent; GUILayout.BeginHorizontal(); GUILayout.Label("Model Controller", GUILayout.Width(100)); tte.GameObject = (GameObject)EditorGUILayout.ObjectField(tte.GameObject, typeof(GameObject), true); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Parameter", GUILayout.Width(100)); tte.AnimatorParam = EditorGUILayout.TextField(tte.AnimatorParam); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Value", GUILayout.Width(100)); tte.AnimatorParamValue = EditorGUILayout.FloatField(tte.AnimatorParamValue); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Modify Parameter", GUILayout.Width(100)); tte.ModifyAnimatorParam = EditorGUILayout.Toggle(tte.ModifyAnimatorParam); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Layer", GUILayout.Width(100)); tte.AnimatorLayer = EditorGUILayout.TextField(tte.AnimatorLayer); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Amount", GUILayout.Width(100)); tte.AnimatorLayerAmount = EditorGUILayout.FloatField(tte.AnimatorLayerAmount); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Modify Layer", GUILayout.Width(100)); tte.ModifyAnimatorLayer = EditorGUILayout.Toggle(tte.ModifyAnimatorLayer); GUILayout.EndHorizontal(); }