using System.Collections; using System.Collections.Generic; using UnityEngine; namespace InfallibleCode { public class PianoCapClose : MonoBehaviour, IInteractable { [SerializeField] Animator _pianoAnimator; [SerializeField] private string _pianoCapCloseAnimatorTriggerName; [SerializeField] private AudioSource _pianoAudioSource; [SerializeField] private AudioSource _pianoCapAudioSource; [SerializeField] private AudioClip _pianoCapCloseAudioClip; [SerializeField] private EventTrigger _eventTriggerAfterPianoCapIsClosed; [SerializeField] private float _waitUntilToDoEvent; bool animPlayed; public bool DoOnce; public void CloseCap() { if(DoOnce) StartCoroutine(DoEventAfterSeconds()); } IEnumerator DoEventAfterSeconds() { _pianoAnimator.SetTrigger(_pianoCapCloseAnimatorTriggerName); yield return new WaitForSeconds(_waitUntilToDoEvent); _pianoAudioSource.Stop(); _pianoCapAudioSource.clip = _pianoCapCloseAudioClip; _pianoCapAudioSource.Play(); _eventTriggerAfterPianoCapIsClosed.Invoke(); } public void Interact() { CloseCap(); } } }