protected void _ColorField(ref Rect rect, UnityObject obj, Color color, Action <Color> changed)
        {
            rect.width = 32;
            ScopeChange.Begin();
            var _color = UnityEditorEditorGUI.DoColorField(rect, obj.GetInstanceID(), color, true, true, false);

            if (ScopeChange.End())
            {
                EditorHelper.Dirty(obj, () => {
                    changed(_color);
                });
            }
            rect.x += rect.width + 4;
        }
        protected void _AlphaSlider(ref Rect rect, UnityObject obj, Color color, Action <Color> changed)
        {
            rect.width = 40;

            ScopeChange.Begin();
            var _a = HEditorGUI.Slider(rect, color.a, 0, 1);

            if (ScopeChange.End())
            {
                EditorHelper.Dirty(obj, () => {
                    changed(ColorUtils.RGBA(color, _a));
                });
            }
            rect.x += rect.width + 4;
        }
        protected void _AlphaSlider(ref Rect rect, UnityObject obj, float alpha, Action <float> changed)
        {
            rect.width = 40;

            ScopeChange.Begin();
            var _a = HEditorGUI.Slider(rect, alpha, 0, 1);

            if (ScopeChange.End())
            {
                EditorHelper.Dirty(obj, () => {
                    changed(_a);
                });
            }
            rect.x += rect.width + 4;
        }
        protected void _Graphic(ref Rect rect, Graphic obj)
        {
            _ColorField(ref rect, obj, obj.color, (color) => {
                obj.color = color;
            });
            _AlphaSlider(ref rect, obj, obj.color, (color) => {
                obj.color = color;
            });

            rect.width = 16;
            ScopeChange.Begin();
            var _b = EditorGUI.Toggle(rect, obj.raycastTarget);

            if (ScopeChange.End())
            {
                EditorHelper.Dirty(obj, () => {
                    obj.raycastTarget = _b;
                });
            }
        }
Exemple #5
0
        public override void OnInspectorGUI()
        {
            //DrawDefaultInspector();
            m_Editor.OnInspectorGUI();

            GUILayout.Space(8);

            GUI.changed = false;
            var x = EditorGUILayout.FloatField("scale", self.transform.localScale.x);

            if (GUI.changed)
            {
                EditorHelper.Dirty(self, () => {
                    self.transform.localScale = new Vector3(x, x, self.transform.localScale.z);
                });
            }

            using (new GUILayout.HorizontalScope()) {
                GUILayout.FlexibleSpace();
                //if( GUILayout.Button( "y" ) ) {
                //	Debug.Log( self.transform.position.y );
                //}
                if (GUILayout.Button("Scale値をWidth & Heightに反映させる"))
                {
                    EditorHelper.Dirty(self, () => {
                        self.sizeDelta            = new Vector2(self.sizeDelta.x * self.transform.localScale.x, self.sizeDelta.y * self.transform.localScale.y);
                        self.transform.localScale = Vector3.one;
                        GUI.FocusControl("");
                    });
                }
                if (GUILayout.Button("リセット"))
                {
                    EditorHelper.Dirty(self, () => {
                        self.transform.localRotation = Quaternion.identity;
                        self.transform.localScale    = Vector3.one;
                        self.transform.localPosition = Vector3.zero;
                    });
                }
            }
            GUILayout.Label(string.Format($"{self.transform.localPosition.ToString()} : {self.transform.position.ToString()} : {self.transform.GetSiblingIndex()}: {self.transform.position.y}"));
        }
        protected void _ObjectField <T>(ref Rect rect, T obj, Action <T> changed) where T : UnityObject
        {
            if (objectField == null)
            {
                objectField              = new GUIStyle(EditorStyles.objectField);
                objectField.padding.top  = 1;
                objectField.padding.left = 2;
            }
            rect.width = 33;
            ScopeChange.Begin();
            var id = go.GetInstanceID();
            var t  = obj != null?obj.GetType() : typeof(T);

            var _obj = UnityEditorEditorGUI.DoObjectField(rect, rect, id, obj, t, null, null, false, objectField);

            if (ScopeChange.End())
            {
                EditorHelper.Dirty(go, () => {
                    changed((T)_obj);
                });
            }
            rect.x += rect.width + 4;
        }