static UnityEngine.Object[] bindableObjects; // = new List<Behaviour>(); public override void OnInspectorGUI() { // base.OnInspectorGUI (); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Drag(BindableObject) to add", GUILayout.Width(200)); EditorGUILayout.Space(); UnityEngine.Component addComponent = null; addComponent = (UnityEngine.Component)EditorGUILayout.ObjectField(addComponent, typeof(UnityEngine.Component), true, GUILayout.Height(40)); EditorGUILayout.Separator(); EditorGUILayout.LabelField("Bindable List", GUILayout.Width(200)); EditorGUILayout.Space(); var temp = target as BindableContainer; Undo.RecordObject(target, "F"); BindableObject objComponent; if (temp.children != null) { for (int i = 0; i < temp.children.Count; i++) { // EditorGUILayout.BeginHorizontal (); // GUILayout.Label ((i + 1).ToString (), GUILayout.Width (20)); objComponent = temp.children[i]; // EditorGUILayout.ObjectField (objComponent, typeof (UnityEngine.Object)); // objComponent = PopupGameObjectComponents (GetbindableObjects (temp, i).target, i); //选择绑定的component type类型 // if (objComponent != null) AddbindableObjects (temp, i, objComponent); //绑定选中的类型 // //显示选中的对象 // AddbindableObjects (temp, i, EditorGUILayout.ObjectField (GetbindableObjects (temp, i).target, typeof (UnityEngine.Object), true, GUILayout.MaxWidth (80))); // //选择可绑定属性 // PopupComponentsProperty (temp, i); BindalbeObjectUtilty.BindableObjectField(objComponent, i); if (GUILayout.Button("Del", GUILayout.Width(30))) { RemoveAtbindableObjects(temp, i); } // EditorGUILayout.EndHorizontal (); //设置binding属性 SetBindingProperties(temp, i); EditorGUILayout.Space(); } } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (addComponent) { AddbindableObjects(temp, addComponent); //allcomps[allcomps.Length - 1]); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); //EditorUtility.SetDirty (target); }
public override void OnInspectorGUI() { EditorGUILayout.Separator(); var temp = target as CustomBinder; // base.OnInspectorGUI(); GUILayout.BeginHorizontal(); temp.target = (Component)BindalbeEditorUtilty.DrawPopUpComponents("Binder Target", temp.target, GUILayout.MinWidth(150)); GUILayout.EndHorizontal(); BindalbeObjectUtilty.BindableObjectField(temp, 0); }
public override void OnInspectorGUI() { // base.OnInspectorGUI (); EditorGUILayout.Separator(); var temp = target as CustomBinder; // base.OnInspectorGUI(); GUILayout.BeginHorizontal(); // GUILayout.Label(new GUIContent("Binder Target"), GUILayout.MinWidth(60)); // content = GUILayout.TextField(content, options); // GUILayout.EndHorizontal(); // if (!string.IsNullOrEmpty(content)) content = content.Replace(",", "").Replace("=", ""); // temp.binderTarget = (Component)EditorGUILayout.ObjectField(temp.binderTarget, typeof(Component), false, GUILayout.MaxWidth(150)); //显示绑定对象 temp.target = (Component)BindalbeEditorUtilty.DrawPopUpComponents("Binder Target", temp.target, GUILayout.MinWidth(150)); GUILayout.EndHorizontal(); BindalbeObjectUtilty.BindableObjectField(temp, 0); }
public override void OnInspectorGUI() { EditorGUILayout.Separator(); var temp = target as BindableObject; var tp = temp.GetType(); var prop = tp.GetProperty("target", BindingFlags.Public | BindingFlags.Instance); if (prop != null) { if (prop.GetValue(target) == null) { prop.SetValue(target, temp.GetComponent(prop.PropertyType)); } } // else base.OnInspectorGUI(); BindalbeObjectUtilty.BindableObjectField(temp, 0); }
static UnityEngine.Object[] bindableObjects; // = new List<Behaviour>(); public override void OnInspectorGUI() { // base.OnInspectorGUI (); EditorGUILayout.Separator(); var temp = target as BindableContainer; EditorGUILayout.LabelField("Drag(BindableObject) to add", GUILayout.Width(200)); EditorGUILayout.Space(); UnityEngine.Component addComponent = null; addComponent = (UnityEngine.Component)EditorGUILayout.ObjectField(addComponent, typeof(UnityEngine.Component), true, GUILayout.Height(40)); EditorGUILayout.Separator(); EditorGUILayout.Space(); if (GUILayout.Button("auto add hierarchy children", GUILayout.MaxWidth(300))) { //清理 var children = temp.children; for (int i = 0; i < children.Count;) { if (children[i] != null) { i++; } else { children.RemoveAt(i); } } AddHierarchyChildren(temp.transform, temp, true); } EditorGUILayout.Space(); EditorGUILayout.LabelField("Bindable List", GUILayout.Width(200)); EditorGUILayout.Space(); Undo.RecordObject(target, "F"); BindableObject objComponent; if (temp.children != null) { for (int i = 0; i < temp.children.Count; i++) { objComponent = temp.children[i]; BindalbeObjectUtilty.BindableObjectField(objComponent, i); if (GUILayout.Button("Del", GUILayout.Width(30))) { RemoveAtbindableObjects(temp, i); } //设置binding属性 SetBindingProperties(temp, i); EditorGUILayout.Space(); } } EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (addComponent) { AddbindableObjects(temp, addComponent); //allcomps[allcomps.Length - 1]); } EditorGUILayout.Space(); EditorGUILayout.EndHorizontal(); //EditorUtility.SetDirty (target); }