12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEditor;
- namespace EZXR.Glass.UI
- {
- [CustomEditor(typeof(SpatialUIElement))]
- [CanEditMultipleObjects]
- public class SpatialUIElementInspector : Editor
- {
- private SpatialUIElement _target_SpatialUIElement;
- SerializedProperty interactable;
- SerializedProperty positionType;
- SerializedProperty size;
- SerializedProperty text;
- SerializedProperty textColor;
- SerializedProperty color;
- SerializedProperty texture;
- SerializedProperty sortingOrder;
- protected virtual void OnEnable()
- {
- _target_SpatialUIElement = target as SpatialUIElement;
- interactable = serializedObject.FindProperty("interactable");
- positionType = serializedObject.FindProperty("positionType");
- size = serializedObject.FindProperty("size");
- text = serializedObject.FindProperty("text");
- textColor = serializedObject.FindProperty("textColor");
- color = serializedObject.FindProperty("color");
- texture = serializedObject.FindProperty("texture");
- sortingOrder = serializedObject.FindProperty("sortingOrder");
- }
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
- EditorGUILayout.PropertyField(interactable, new GUIContent("Interactable", "是否可以与射线或者手进行交互"));
- EditorGUILayout.PropertyField(positionType);
- EditorGUILayout.PropertyField(size, new GUIContent("Size(单位:m)"));
- EditorGUILayout.PropertyField(text);
- EditorGUILayout.PropertyField(textColor);
- EditorGUILayout.PropertyField(color);
- EditorGUILayout.BeginHorizontal();
- {
- EditorGUILayout.PropertyField(texture);
- if (GUILayout.Button(new GUIContent("Set Physical Size", "按照SpatialUIController.unitsPerPixel中设定的“像素-UnityUnit转换比例”将Texture以换算后的物理尺寸绘制在空间中")))
- {
- Undo.RecordObject(_target_SpatialUIElement, "Set Physical Size");
- _target_SpatialUIElement.size = new Vector3(_target_SpatialUIElement.Texture.width * _target_SpatialUIElement.curUnitsPerPixel, _target_SpatialUIElement.Texture.height * _target_SpatialUIElement.curUnitsPerPixel, _target_SpatialUIElement.size.z);
- //_target_SpatialUIElement.curUnitsPerPixel = SpatialUIController.Instance.unitsPerPixel;
- EditorApplication.QueuePlayerLoopUpdate();
- //SceneView.RepaintAll();
- }
- }
- EditorGUILayout.EndHorizontal();
- EditorGUI.BeginChangeCheck();
- _target_SpatialUIElement.sortingOrder = EditorGUILayout.DelayedIntField("SortingOrder", _target_SpatialUIElement.sortingOrder);
- if (EditorGUI.EndChangeCheck())
- {
- if (_target_SpatialUIElement._text != null && _target_SpatialUIElement._text.GetComponent<MeshRenderer>() != null)
- {
- _target_SpatialUIElement._text.GetComponent<MeshRenderer>().sortingOrder = _target_SpatialUIElement.sortingOrder + 1;
- }
- }
- serializedObject.ApplyModifiedProperties();
- SceneView.RepaintAll();
- }
- }
- }
|