89 lines
1.8 KiB
C#
89 lines
1.8 KiB
C#
using UnityEngine;
|
|
|
|
public class SlideDoorOpenNew : MonoBehaviour
|
|
{
|
|
public Camera cam;
|
|
|
|
public float RayDistance = 1.7f;
|
|
|
|
public float maxD = 1.7f;
|
|
|
|
private Ray ray;
|
|
|
|
private bool open;
|
|
|
|
public float smooth = 1f;
|
|
|
|
public bool IsZDirection;
|
|
|
|
private float x;
|
|
|
|
private float xr;
|
|
|
|
private float z;
|
|
|
|
private float zr;
|
|
|
|
public float Distance = 1.3f;
|
|
|
|
private float start;
|
|
|
|
private float end;
|
|
|
|
private float startz;
|
|
|
|
private float endz;
|
|
|
|
private void Start()
|
|
{
|
|
if (IsZDirection)
|
|
{
|
|
startz = base.transform.position.z;
|
|
endz = base.transform.position.z - Distance;
|
|
}
|
|
else
|
|
{
|
|
start = base.transform.position.x;
|
|
end = base.transform.position.x - Distance;
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
if (IsZDirection)
|
|
{
|
|
zr = Mathf.Lerp(base.transform.position.z, startz, Time.deltaTime);
|
|
z = Mathf.Lerp(base.transform.position.z, endz, Time.deltaTime);
|
|
if (open)
|
|
{
|
|
base.transform.position = new Vector3(base.transform.position.x, base.transform.position.y, z * smooth);
|
|
}
|
|
else
|
|
{
|
|
base.transform.position = new Vector3(base.transform.position.x, base.transform.position.y, zr * smooth);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
xr = Mathf.Lerp(base.transform.position.x, start, Time.deltaTime);
|
|
x = Mathf.Lerp(base.transform.position.x, end, Time.deltaTime);
|
|
if (open)
|
|
{
|
|
base.transform.position = new Vector3(x * smooth, base.transform.position.y, base.transform.position.z);
|
|
}
|
|
else
|
|
{
|
|
base.transform.position = new Vector3(xr * smooth, base.transform.position.y, base.transform.position.z);
|
|
}
|
|
}
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|