/** * Add a new type inspector to parentTransform with a target and reflected property or field. */ public static pb_TypeInspector AddTypeInspector(object target, Transform parentTransform, PropertyInfo property = null, FieldInfo field = null) { pb_TypeInspector inspector = null; System.Type type = property != null ? property.PropertyType : field.FieldType; inspector = pb_InspectorResolver.GetInspector(type); if (inspector != null) { if (property != null) { inspector.Initialize(target, property); } else { inspector.Initialize(target, field); } inspector.transform.SetParent(parentTransform); } else { Debug.LogError("No inspector found! Is `pb_ObjectInspector.cs` missing?"); } return(inspector); }
protected override void InitializeGUI() { _meshCollider = (MeshCollider)target; pb_GUIUtility.AddVerticalLayoutGroup(gameObject); pb_TypeInspector enabled_inspector = pb_InspectorResolver.GetInspector(typeof(bool)); enabled_inspector.Initialize("Enabled", UpdateEnabled, OnSetEnabled); enabled_inspector.onValueBeginChange = () => { Undo.RegisterState(new UndoReflection(_meshCollider, "enabled"), "Mesh Collider Enabled"); }; enabled_inspector.transform.SetParent(transform); }
protected override void InitializeGUI() { pb_GUIUtility.AddVerticalLayoutGroup(gameObject); _transform = (Transform)target; pb_TypeInspector position_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3)); pb_TypeInspector rotation_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3)); pb_TypeInspector scale_inspector = pb_InspectorResolver.GetInspector(typeof(Vector3)); position_inspector.Initialize("Position", UpdatePosition, OnSetPosition); rotation_inspector.Initialize("Rotation", UpdateRotation, OnSetRotation); scale_inspector.Initialize("Scale", UpdateScale, OnSetScale); position_inspector.onValueBeginChange = () => { Undo.RegisterState(new UndoTransform(_transform), "Set Position: " + _transform.position.ToString("G")); }; rotation_inspector.onValueBeginChange = () => { Undo.RegisterState(new UndoTransform(_transform), "Set Rotation: " + _transform.localRotation.eulerAngles.ToString("G")); }; scale_inspector.onValueBeginChange = () => { Undo.RegisterState(new UndoTransform(_transform), "Set Scale: " + _transform.localScale.ToString("G")); }; position_inspector.transform.SetParent(transform); rotation_inspector.transform.SetParent(transform); scale_inspector.transform.SetParent(transform); }
public override void InitializeGUI() { title.text = GetName().SplitCamelCase(); value = GetValue <ICollection>(); if (value != null) { // much boxing array = value.Cast <object>().ToArray(); if (array.Length < 1 || array.Length > 32) { return; } if (DeclaringType == null || DeclaringType.GetElementType() == null) { return; } System.Type elementType = DeclaringType.GetElementType(); string typeName = elementType.ToString().Substring(elementType.ToString().LastIndexOf('.') + 1); for (int i = 0; i < array.Length; i++) { pb_TypeInspector inspector = pb_InspectorResolver.GetInspector(elementType); inspector.SetIndexInCollection(i); inspector.Initialize(typeName, (int index) => { return(array[index]); }, SetValueAtIndex); inspector.transform.SetParent(collection); } } }