private void OnAddCondition(object aValue) { var item = new AntAIScenarioItem { id = _scenario.conditions.GetIndex(aValue.ToString()), value = true }; AntArray.Add(ref _goal.conditions, item); }
private void DrawConditionsList(string aLabel, ref AntAIScenarioItem[] aConditions) { Color c = GUI.color; GUILayout.BeginVertical(_rowStyleA); var list = new string[_self.conditions.list.Length + 1]; list[0] = "- Select to Add -"; for (int i = 1, n = list.Length; i < n; i++) { list[i] = _self.conditions.list[i - 1].name; } int addIndex = EditorGUILayout.Popup(aLabel, 0, list); if (addIndex > 0) { var item = new AntAIScenarioItem() { id = _self.conditions.GetID(list[addIndex]), value = true }; AddToArray <AntAIScenarioItem>(ref aConditions, item); } GUILayout.EndVertical(); int delIndex = -1; for (int i = 0, n = aConditions.Length; i < n; i++) { GUILayout.BeginVertical((i % 2 == 0) ? _rowStyleB : _rowStyleC); GUILayout.BeginHorizontal(); GUI.color = c * ((aConditions[i].value) ? new Color(0.5f, 1.0f, 0.5f) : new Color(1.0f, 0.5f, 0.5f)); // green : red if (GUILayout.Button((aConditions[i].value) ? "I" : "O", GUILayout.MaxWidth(20.0f), GUILayout.MaxHeight(16.0f))) { aConditions[i].value = !aConditions[i].value; } GUILayout.Label(_self.conditions.GetName(aConditions[i].id)); GUI.color = c; if (GUILayout.Button("x", GUILayout.MaxWidth(20.0f), GUILayout.MaxHeight(16.0f))) { delIndex = i; } GUILayout.EndHorizontal(); GUILayout.Space(2.0f); GUILayout.EndVertical(); } if (delIndex > -1) { RemoveFromArrayAt <AntAIScenarioItem>(ref aConditions, delIndex); } }
private void OnAddPostCondition(object aValue) { var item = new AntAIScenarioItem { id = _scenario.conditions.GetIndex(aValue.ToString()), value = true }; AntArray.Add(ref _action.post, item); EditorUtility.SetDirty(Scenario); }
private void AddConditionHandler(object aValue) { var item = new AntAIScenarioItem { id = _scenario.conditions.GetIndex(aValue.ToString()), value = true }; AntArray.Add(ref _worldState.list, item); EditorUtility.SetDirty(_scenario); }