aboutsummaryrefslogtreecommitdiff
path: root/Assets/Scripts/OneWayDoorBehaviour.cs
diff options
context:
space:
mode:
authorWeicao-CatilGrass <1992414357@qq.com>2026-06-04 20:27:04 +0800
committerWeicao-CatilGrass <1992414357@qq.com>2026-06-04 22:06:02 +0800
commit225ef2ab53fffd6a00caa425d6f86e64d1e3f6b6 (patch)
tree79fb88747cf9b7add17542d93c84a00a1b9f801e /Assets/Scripts/OneWayDoorBehaviour.cs
parent364bd0db3dba9a0cc80f76cb465d80209922557f (diff)
增加存档系统并绑定到门上
Diffstat (limited to 'Assets/Scripts/OneWayDoorBehaviour.cs')
-rw-r--r--Assets/Scripts/OneWayDoorBehaviour.cs27
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;
+ }
}