42 lines
1.3 KiB
C#
42 lines
1.3 KiB
C#
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();
|
|
}
|
|
|
|
}
|
|
} |