Spatial lawnmower audio implemented
This commit is contained in:
62
Assets/Scripts/Sound/GardenerAudioController.cs
Normal file
62
Assets/Scripts/Sound/GardenerAudioController.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using AudioSourceEvents;
|
||||
using System;
|
||||
using System.Diagnostics.Tracing;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Audio;
|
||||
|
||||
public class GardenerAudioController : MonoBehaviour
|
||||
{
|
||||
|
||||
public AudioSource gardenerAudioPlayer;
|
||||
public AudioSource mowerAudioPlayer;
|
||||
public AudioResource mowerStartAudio;
|
||||
public AudioResource mowerLoopAudio;
|
||||
public AudioResource gardenerFleeAudioClip;
|
||||
public AudioResource gardenerChaseAudioClip;
|
||||
|
||||
public SpriteRenderer gardenerSprite;
|
||||
|
||||
private IAudioEventSource _eventSource;
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
}
|
||||
|
||||
void GardenerIsOnScreen()
|
||||
{
|
||||
Debug.Log("Gardener spotted!");
|
||||
}
|
||||
|
||||
public void StartMowerSound()
|
||||
{
|
||||
mowerAudioPlayer.Play();
|
||||
_eventSource = mowerAudioPlayer.RequestEventHandlers();
|
||||
_eventSource.AudioStopped += PlayMowerLoop;
|
||||
|
||||
}
|
||||
|
||||
private void PlayMowerLoop(object sender, EventArgs e)
|
||||
{
|
||||
_eventSource.AudioStopped -= PlayMowerLoop;
|
||||
mowerAudioPlayer.resource = mowerLoopAudio;
|
||||
mowerAudioPlayer.loop = true;
|
||||
mowerAudioPlayer.Play();
|
||||
}
|
||||
|
||||
public void PlayGardenerVOClip(bool fleeing)
|
||||
{
|
||||
if (gardenerAudioPlayer.isPlaying) { return; }
|
||||
if (fleeing) {
|
||||
gardenerAudioPlayer.resource = gardenerFleeAudioClip;
|
||||
gardenerAudioPlayer.Play();
|
||||
}
|
||||
if (!fleeing)
|
||||
{
|
||||
gardenerAudioPlayer.resource = gardenerChaseAudioClip;
|
||||
gardenerAudioPlayer.Play();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user