void Draw(AIConditional conditional) { if (!conditional) { return; } ConditionField(conditional); Draw(conditional.condition); if (conditional.ifFalse == null) { conditional.ifFalse = new AIActionCollection(); } if (conditional.ifTrue == null) { conditional.ifTrue = new AIActionCollection(); } Header(Texts.ifTrue, conditional.ifTrue); Draw(conditional.ifTrue); Header(Texts.ifFalse, conditional.ifFalse); Draw(conditional.ifFalse); }
void ConditionField(AIConditional conditional) { var i = conditional.condition ? Conditions.Keys.ToList().IndexOf(conditional.condition.GetType()) : -1; EditorGUI.BeginChangeCheck(); var l = Conditions.Values.ToList(); l.Insert(0, Texts.none); i = EditorGUILayout.Popup(Texts.condition, i + 1, l.ToArray()); if (EditorGUI.EndChangeCheck()) { if (i == 0) { conditional.condition = null; } else { conditional.condition = (AICondition)Activator.CreateInstance(Conditions.Keys.ElementAt(i - 1)); } } }