Türe öffnen und schließen sich per Button und das Licht kann man ebenfalls per Button an-aus schalten. Sound würde dafür fehlen.
This commit is contained in:
59
Assets/Scripts/Door/Door.cs
Normal file
59
Assets/Scripts/Door/Door.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using UnityEngine;
|
||||
|
||||
public class Door : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject light;
|
||||
|
||||
[SerializeField] private Vector3 openPos;
|
||||
[SerializeField] private Vector3 closePos;
|
||||
|
||||
[SerializeField] private float doorSpeed;
|
||||
|
||||
public bool isOpen;
|
||||
public bool isOn;
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
transform.position = openPos;
|
||||
isOpen = true;
|
||||
|
||||
ChangeLights();
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (isOpen) {
|
||||
if (transform.position != openPos) {
|
||||
// Damit sich die Tür smooth öffnen lässt.
|
||||
if (Vector3.Distance(transform.position, openPos) <= 0.5f) {
|
||||
transform.position = openPos;
|
||||
}
|
||||
else {
|
||||
transform.position = Vector3.Lerp(transform.position, openPos, doorSpeed * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (transform.position != closePos) {
|
||||
// Damit sich die Tür smooth öffnen lässt.
|
||||
if (Vector3.Distance(transform.position, closePos) <= 0.5f) {
|
||||
transform.position = closePos;
|
||||
} else {
|
||||
transform.position = Vector3.Lerp(transform.position, closePos, doorSpeed * Time.deltaTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void ChangeLights() {
|
||||
isOn = !isOn;
|
||||
|
||||
if (isOn) {
|
||||
light.SetActive(true);
|
||||
}
|
||||
else {
|
||||
light.SetActive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user