BITFALL/Assets/Chernobyl/Other/Door.cs

71 lines
1.9 KiB
C#
Raw Normal View History

2023-12-30 17:37:48 +08:00
using UnityEngine;
using UnityEngine.UI;
public class Door : MonoBehaviour
{
bool trig, open;//trig-проверка входа выхода в триггер(игрок должен быть с тегом Player) open-закрыть и открыть дверь
public float smooth = 2.0f;//скорость вращения
public float DoorOpenAngle = 90.0f;//угол вращения
private Vector3 defaulRot;
private Vector3 openRot;
public Text txt;//text
// Start is called before the first frame update
void Start()
{
defaulRot = transform.eulerAngles;
openRot = new Vector3(defaulRot.x, defaulRot.y + DoorOpenAngle, defaulRot.z);
}
// Update is called once per frame
void Update()
{
if (open)//открыть
{
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, openRot, Time.deltaTime * smooth);
}
else//закрыть
{
transform.eulerAngles = Vector3.Slerp(transform.eulerAngles, defaulRot, Time.deltaTime * smooth);
}
if (Input.GetKeyDown(KeyCode.E) && trig)
{
open = !open;
}
if (trig)
{
if (open)
{
txt.text = "Close E";
}
else
{
txt.text = "Open E";
}
}
}
private void OnTriggerEnter(Collider coll)//вход и выход в\из триггера
{
if (coll.tag == "Player")
{
if (!open)
{
txt.text = "Close E ";
}
else
{
txt.text = "Open E";
}
trig = true;
}
}
private void OnTriggerExit(Collider coll)//вход и выход в\из триггера
{
if (coll.tag == "Player")
{
txt.text = " ";
trig = false;
}
}
}