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; }); } }
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; }