Exemple #1
0
        /**
         * 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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
                }
            }
        }