using DG.Tweening; using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// ÆÕͨÃÅ /// public class Door : MonoBehaviour { public bool isOpen; public ZhouEnum zhouEnum; public float angele; public float duration; Dictionary dic; [SerializeField] private Vector3 initR; [SerializeField] private Vector3 nextR; private void Awake() { GetEndAngle(); } private void OnMouseDown() { isOpen = !isOpen; transform.DOLocalRotate(dic[isOpen], duration); } private void GetEndAngle() { initR = transform.localEulerAngles; transform.Rotate(new Vector3(zhouEnum == ZhouEnum.X ? 1 : 0, zhouEnum == ZhouEnum.Y ? 1 : 0, zhouEnum == ZhouEnum.Z ? 1 : 0), angele, Space.Self); nextR = transform.localEulerAngles; transform.localEulerAngles = initR; dic = new Dictionary(); dic.Add(isOpen, initR); dic.Add(!isOpen, nextR); } } public enum ZhouEnum { X, Y, Z }