using UnityEngine; public class DoorOpenNew : MonoBehaviour { public float smooth = 1f; public float angle = 90f; public Camera cam; public float RayDistance = 1.7f; public float maxD = 1.7f; private Ray ray; public bool open; private Quaternion start; private Quaternion end; private void Start() { start = Quaternion.Euler(base.transform.rotation.eulerAngles.x, 0f, base.transform.rotation.eulerAngles.z); end = Quaternion.Euler(base.transform.rotation.eulerAngles.x, 0f - angle, base.transform.rotation.eulerAngles.z); } private void Update() { if (open) { base.transform.rotation = Quaternion.Slerp(base.transform.rotation, end, Time.deltaTime * smooth); } else { base.transform.rotation = Quaternion.Slerp(base.transform.rotation, start, Time.deltaTime * smooth); } if (Input.GetKeyDown("f")) { ray = cam.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out var hitInfo, RayDistance) && hitInfo.transform.tag == "Door" && Vector3.Distance(hitInfo.transform.position, base.transform.position) < maxD) { open = !open; } } } }