aboutsummaryrefslogtreecommitdiff
path: root/Assets/Scripts/Editor/OneWayDoorBehaviourEditor.cs
blob: cfd0681043c918c18f9efe4db6d21b87c79b225e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#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