Files
AppleHillsProduction/Assets/Scripts/Sound/GardenerAudioController.cs

60 lines
1.7 KiB
C#
Raw Normal View History

2025-10-20 16:21:32 +02:00
using AudioSourceEvents;
using System;
using System.Diagnostics.Tracing;
using UnityEngine;
using UnityEngine.Audio;
public class GardenerAudioController : MonoBehaviour
{
2025-10-30 15:25:07 +01:00
public AppleAudioSource gardenerIdleAudioPlayer;
public AppleAudioSource gardenerRunningAudioPlayer;
public AppleAudioSource mowerAudioPlayer;
2025-10-20 16:21:32 +02:00
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()
{
}
public void StartMowerSound()
{
2025-10-30 15:25:07 +01:00
mowerAudioPlayer.Play(0);
_eventSource = mowerAudioPlayer.audioSource.RequestEventHandlers();
2025-10-20 16:21:32 +02:00
_eventSource.AudioStopped += PlayMowerLoop;
}
private void PlayMowerLoop(object sender, EventArgs e)
{
_eventSource.AudioStopped -= PlayMowerLoop;
2025-10-30 15:25:07 +01:00
mowerAudioPlayer.audioSource.resource = mowerLoopAudio;
mowerAudioPlayer.audioSource.loop = true;
mowerAudioPlayer.Play(0);
2025-10-20 16:21:32 +02:00
}
public void PlayGardenerVOClip(bool fleeing)
{
2025-10-30 15:25:07 +01:00
if (gardenerRunningAudioPlayer.audioSource.isPlaying) { return; }
2025-10-20 16:21:32 +02:00
if (fleeing) {
2025-10-30 15:25:07 +01:00
gardenerRunningAudioPlayer.audioSource.resource = gardenerFleeAudioClip;
gardenerRunningAudioPlayer.Play(1);
2025-10-20 16:21:32 +02:00
}
if (!fleeing)
{
2025-10-30 15:25:07 +01:00
gardenerRunningAudioPlayer.audioSource.resource = gardenerChaseAudioClip;
gardenerRunningAudioPlayer.Play(1);
2025-10-20 16:21:32 +02:00
}
}
}