public void buffer_Remove(TimeLine_Object tmLine_Object) { if (waves_buffer.Peek() == tmLine_Object) { waves_buffer.Pop(); } }
void FixedUpdate() { time = Time.time; if (waves_buffer.Count > 0) { if (waves_buffer.Peek() != null) { TimeLine_Object current_object = waves_buffer.Peek(); bool result = current_object.Act(this); if (result) { if (waves_buffer.Peek() == current_object) { Add_playedList(waves_buffer.Pop()); } lastActionTime = time; } } else { } //Add_playedList(waves_buffer.Pop()); } }
private void Add_playedList(TimeLine_Object obj) { if (played_waves.Count > 0) { played_waves.Insert(played_waves.Count, obj); } else { played_waves.Insert(0, obj); } }
void Start() { lastActionTime = Time.time; time = Time.time; waves_buffer = new Stack <TimeLine_Object>(); TimeLine_Object[] timeLine_list = new TimeLine_Object[TimeLine.Count]; TimeLine.CopyTo(timeLine_list, 0); Load_Waves(timeLine_list); }
public override bool Act(TimeLinePlayer player) { if (ObjectsList.Length == 0) { Debug.LogError("TimeLineObject Random Object doesn't have any object to choose from!"); return(true); } player.buffer_Remove(this); int rng = Random.Range(0, ObjectsList.Length); TimeLine_Object[] list = new TimeLine_Object[1]; list[0] = ObjectsList[rng]; player.buffer_Add(list); return(true); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); TimeLinePlayer myTarget = (TimeLinePlayer)target; myTarget.showPlayedWaves = EditorGUILayout.ToggleLeft("- Show played TimeLine Objects: ", myTarget.showPlayedWaves); if (!myTarget.showPlayedWaves) { return; } for (int i = 0; i < myTarget.played_waves.Count; i++) { EditorGUILayout.LabelField(i + ". " + myTarget.played_waves[i].name, EditorStyles.miniLabel); } if (myTarget.waves_buffer == null) { return; } TimeLine_Object[] objectsList = new TimeLine_Object[myTarget.waves_buffer.Count]; myTarget.waves_buffer.CopyTo(objectsList, 0); if (objectsList.Length > 0) { EditorGUILayout.LabelField(myTarget.played_waves.Count + ". " + "-> " + objectsList[0].name, EditorStyles.miniBoldLabel); for (int i = 1; i < objectsList.Length; i++) { EditorGUILayout.LabelField((myTarget.played_waves.Count + i) + ". " + objectsList[i].name); } } }