#if UNITY_EDITOR using System.Globalization; using UnityEditor; using UnityEngine; namespace Editor { [CustomEditor(typeof(OneWayDoorBehaviour))] public class OneWayDoorBehaviourEditor : UnityEditor.Editor { /* * Editor page created by Mountools * Author : WangSoul Team * Date : 2026 / 06 / 01 - 15:06:38 */ public OneWayDoorBehaviour oneWayDoorBehaviour; private void OnEnable() { oneWayDoorBehaviour = (OneWayDoorBehaviour) target; } private void DrawOneWayDoorBehaviourEditor() { EditorGUI.BeginDisabledGroup(oneWayDoorBehaviour.lockId); { if (GUILayout.Button("随机一个ID")) { oneWayDoorBehaviour.doorAngleStoreId = Random.Range(0, 65535); } oneWayDoorBehaviour.doorAngleStoreId = EditorGUILayout.IntSlider("ID", oneWayDoorBehaviour.doorAngleStoreId, 0, 65535); } EditorGUI.EndDisabledGroup(); EditorGUI.BeginDisabledGroup(true); { EditorGUILayout.LabelField("单项门角度", oneWayDoorBehaviour.Angle.ToString(CultureInfo.InvariantCulture)); EditorGUILayout.LabelField("单项门开合百分比", oneWayDoorBehaviour.AnglePercent.ToString(CultureInfo.InvariantCulture)); EditorGUILayout.Toggle("单项门是否打开", oneWayDoorBehaviour.IsOpened); } EditorGUI.EndDisabledGroup(); } #region _ public override void OnInspectorGUI() { Undo.RecordObject(oneWayDoorBehaviour, "Edit OneWayDoorBehaviour"); EditorGUI.BeginChangeCheck(); DrawDefaultInspector(); DrawOneWayDoorBehaviourEditor(); if (EditorGUI.EndChangeCheck()) { EditorUtility.SetDirty(oneWayDoorBehaviour); Undo.FlushUndoRecordObjects(); serializedObject.ApplyModifiedProperties(); } } private bool Property(string label, string propertyName, params GUILayoutOption[] options) { return EditorGUILayout.PropertyField(serializedObject.FindProperty(propertyName), new GUIContent(label), options); } #endregion } } #endif