Я пытался сделать дверь в стиле «Фазмофобия», где вы щелкаете и перетаскиваете ручку, чтобы переместить дверь. Мне удалось это сделать, повернув петлю лицом к цели на противоположном конце двери, которую игрок может схватить как ручку двери.
Цель возвращается туда, где она должна была бы находиться на двери на самом деле. Я хочу, чтобы дверь перестала следовать за этой целью после достижения угла, определенного переменной, чтобы предотвратить это.
Проблема в том, что я сделал таргетинг, используя «Quaternion.LookRotation». И я не могу найти способ задать угловую переменную в углах Эйлера, чтобы ограничить, насколько далеко заходит это вращение взгляда.
По общему признанию, это в основном недостаток опыта кодирования.
private void Update()
{
DoorVector = transform.position;
TargetVector = DoorTarget.transform.position;
DoorX = DoorVector.x;
DoorZ = DoorVector.z;
TargetX = TargetVector.x;
TargetZ = TargetVector.z;
DoorRotation = Quaternion.LookRotation(new Vector3(TargetX, 0, TargetZ) - new Vector3(DoorX, 0, DoorZ));
spd = Mathf.Min (DoorSpeed * Time.deltaTime);
transform.rotation = Quaternion.Lerp (transform.rotation , DoorRotation, spd);
}
} private void Update()
{
DoorVector = transform.position;
TargetVector = DoorTarget.transform.position;
DoorX = DoorVector.x;
DoorZ = DoorVector.z;
TargetX = TargetVector.x;
TargetZ = TargetVector.z;
DoorRotation = Quaternion.LookRotation(new Vector3(TargetX, 0, TargetZ) - new Vector3(DoorX, 0, DoorZ));
//Psuedo Code: if(MaxAngle