private void loadTaskIcon() { Texture2D _icon = null; if (m_EditorNode.m_Node.m_IsAcitonNode) { _icon = BTreeEditorUtility.LoadTexture("ActionIcon.png"); } else { Type type = m_EditorNode.m_Node.GetType(); if (type == typeof(BTreeNodePrioritySelector)) { _icon = BTreeEditorUtility.PrioritySelectorIcon; } else if (type == typeof(BTreeNodeNonePrioritySelector)) { _icon = BTreeEditorUtility.PrioritySelectorIcon; } else if (type == typeof(BTreeNodeSequence)) { _icon = BTreeEditorUtility.SequenceIcon; } else if (type == typeof(BTreeNodeParallel)) { _icon = BTreeEditorUtility.ParallelSelectorIcon; } else { _icon = BTreeEditorUtility.InverterIcon; } } m_Icon = _icon; }
void DrawValue(BTreeNode _node, FieldInfo _field) { if (_field == null) { return; } try { GUILayout.BeginHorizontal(); EditorGUILayout.LabelField(BTreeEditorUtility.SplitCamelCase(_field.Name) + ":", new GUILayoutOption[] { GUILayout.Width(100) }); if (_field.FieldType == typeof(int)) { var _val = EditorGUILayout.IntField((int)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(float)) { var _val = EditorGUILayout.FloatField((float)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(double)) { var _val = EditorGUILayout.DoubleField((float)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(string)) { var _val = EditorGUILayout.TextField((string)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType.IsEnum) { var _val = EditorGUILayout.EnumPopup((Enum)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(Vector2)) { var _val = EditorGUILayout.Vector2Field("", (Vector2)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(Vector3)) { var _val = EditorGUILayout.Vector3Field("", (Vector3)(_field.GetValue(_node))); _field.SetValue(_node, _val); } else if (_field.FieldType == typeof(Vector4)) { var _val = EditorGUILayout.Vector4Field("", (Vector4)(_field.GetValue(_node))); _field.SetValue(_node, _val); } GUILayout.EndHorizontal(); } catch (Exception e) { Debugger.LogWarning(e.Message); } }