2023-06-24 15:13:52 +02:00

62 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FadingPlatform : MonoBehaviour
{
private SpriteRenderer spriteRenderer;
private BoxCollider2D col;
private EdgeCollider2D edge;
public float fadeTime;
public float refractoryTime;
private bool gone;
private AudioSource audioSource; // Reference to the AudioSource component
public AudioClip fadeSound; // The sound clip to be played
void Start()
{
spriteRenderer = GetComponent<SpriteRenderer>();
col = GetComponent<BoxCollider2D>();
edge = GetComponent<EdgeCollider2D>();
gone = false;
audioSource = GetComponent<AudioSource>();
}
void Update()
{
if(gone)
{
StartCoroutine(Switch());
}
}
void OnTriggerEnter2D(Collider2D edge) {
if(!gone){
StartCoroutine(Switch());
}
}
// Muss IEnumerator sein weil ich ansonsten den Timer nicht implementieren kann
IEnumerator Switch(){
if(gone)
{
yield return new WaitForSeconds (refractoryTime);
spriteRenderer.enabled = true;
col.enabled = true;
edge.enabled = true;
gone = false;
} else {
yield return new WaitForSeconds (fadeTime);
spriteRenderer.enabled = false;
col.enabled = false;
edge.enabled = false;
gone = true;
audioSource.PlayOneShot(fadeSound);
}
}
}