diff options
Diffstat (limited to 'Assets/Scripts/OneWayDoorBehaviour.cs')
| -rw-r--r-- | Assets/Scripts/OneWayDoorBehaviour.cs | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Assets/Scripts/OneWayDoorBehaviour.cs b/Assets/Scripts/OneWayDoorBehaviour.cs index 25a06ec..cb07762 100644 --- a/Assets/Scripts/OneWayDoorBehaviour.cs +++ b/Assets/Scripts/OneWayDoorBehaviour.cs @@ -1,5 +1,8 @@ -using System; +#if UNITY_EDITOR +using UnityEditor; +#endif using UnityEngine; +using Random = UnityEngine.Random; public class OneWayDoorBehaviour : MonoBehaviour { @@ -7,13 +10,35 @@ public class OneWayDoorBehaviour : MonoBehaviour public Transform door; public GameObject messageHint; + public bool lockId; + [HideInInspector] public int doorAngleStoreId; + public float Angle => Mathf.Round(door.localRotation.eulerAngles.y); public float AnglePercent => Mathf.Clamp01(Angle / 90); public bool IsOpened => Angle > 25; + private void Reset() + { + doorAngleStoreId = Random.Range(0, 65535); +#if UNITY_EDITOR + EditorUtility.SetDirty(this); +#endif + } + private void FixedUpdate() { // 如果门打开,就关闭消息提示 messageHint.SetActive(! IsOpened); } + + private void Awake() + { + var angle = HermesOnDisk.HermesOnDisk.Float[(uint)doorAngleStoreId]; + door.localRotation = Quaternion.Euler(0, angle, 0); + } + + private void OnDisable() + { + HermesOnDisk.HermesOnDisk.Float[(uint)doorAngleStoreId] = Angle; + } } |
