steampunk-quest/Assets/scripts/dialogSystem/AudioPlayer.cs

40 lines
1.0 KiB
C#
Raw Normal View History

2022-01-19 19:22:21 +03:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AudioPlayer : MonoBehaviour
{
public delegate void AudioPlayerStopsCommit();
private AudioSource _audioPlayer;
private List<AudioPlayerStopsCommit> _stopsCommits;
2022-01-29 11:50:50 +03:00
private bool _play;
2022-01-19 19:22:21 +03:00
void Awake()
{
_audioPlayer = gameObject.GetComponent<AudioSource>();
_stopsCommits = new List<AudioPlayerStopsCommit>();
}
public void addStopListener(AudioPlayerStopsCommit stopCommit) {
_stopsCommits.Add(stopCommit);
}
public void PlayAudio(AudioClip audio) {
_audioPlayer.clip = audio;
2022-01-29 11:50:50 +03:00
_audioPlayer.Play();
_play = true;
2022-01-19 19:22:21 +03:00
}
void Update() {
2022-01-29 11:50:50 +03:00
if (!_audioPlayer.isPlaying && _play) {
Debug.Log(_stopsCommits.Count.ToString() + "commits");
2022-01-19 19:22:21 +03:00
for (int i = 0; i < _stopsCommits.Count; ++i) {
2022-01-29 11:50:50 +03:00
if (_stopsCommits[i] == null) continue;
2022-01-19 19:22:21 +03:00
_stopsCommits[i]();
2022-01-29 11:50:50 +03:00
_stopsCommits[i] = null;
2022-01-19 19:22:21 +03:00
}
_stopsCommits = new List<AudioPlayerStopsCommit>();
2022-01-29 11:50:50 +03:00
_play = false;
2022-01-19 19:22:21 +03:00
}
}
}