using UnityEngine;
public class PushDoor :
MonoBehaviour{[Header(“Door Settings”)]
public float openAngle = 90f;
public float openSpeed = 180f;
private bool opening = false;
private float targetAngle = 0f;
private float currentAngle = 0f;
private Quaternion startRotation;
void Start()
{
startRotation = transform.localRotation;
}
void Update()
{
if (!opening) return;
currentAngle = Mathf.MoveTowards(currentAngle, targetAngle, openSpeed * Time.deltaTime);
transform.localRotation = startRotation * Quaternion.Euler(0, currentAngle, 0);
}
private void OnTriggerEnter(Collider other)
{
if (opening) return;
GetComponent<Collider>().isTrigger = false;
if (!other.CompareTag("Player")) return;
Vector3 playerDir = other.transform.position - transform.position;
float side = Vector3.Dot(playerDir, transform.forward);
// open away from player
targetAngle = side > 0 ? -openAngle : openAngle;
opening = true;
}
}‘’’
the door seems to just randomly decide which way to open ive mucked around with it for a while any ideas how to fix this?