Made apple audio sources use OnManagedAwake

This commit is contained in:
2025-11-10 12:19:20 +01:00
parent 3f548c3ed4
commit 7bb992acb8
4 changed files with 24 additions and 9 deletions

View File

@@ -248,7 +248,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2bd397a60643eed45b586961ae6e3453, type: 3} m_Script: {fileID: 11500000, guid: 2bd397a60643eed45b586961ae6e3453, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: AppleHillsScripts::PulverAudioController m_EditorClassIdentifier: AppleHillsScripts::PulverAudioController
audioSource: {fileID: 887004370483616855}
combineAudio: {fileID: 8300000, guid: 768a16f348fe1d94c9cc267dc7ecf3b5, type: 3} combineAudio: {fileID: 8300000, guid: 768a16f348fe1d94c9cc267dc7ecf3b5, type: 3}
itemManager: {fileID: 0}
--- !u!82 &4467608046243604209 --- !u!82 &4467608046243604209
AudioSource: AudioSource:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -3,12 +3,14 @@ using System;
using System.Diagnostics.Tracing; using System.Diagnostics.Tracing;
using UnityEngine; using UnityEngine;
using UnityEngine.Audio; using UnityEngine.Audio;
using Core;
using Core.Lifecycle;
/// <summary> /// <summary>
/// We automatically add the AudioSource component here so we can control it. Do not add it manually! /// We automatically add the AudioSource component here so we can control it. Do not add it manually!
/// </summary> /// </summary>
[RequireComponent(typeof(AudioSource))] [RequireComponent(typeof(AudioSource))]
public class AppleAudioSource : MonoBehaviour public class AppleAudioSource : ManagedBehaviour
{ {
public enum AudioSourceType{CriticalVO,VO,Ambience,SFX,Music} public enum AudioSourceType{CriticalVO,VO,Ambience,SFX,Music}
public AudioSourceType audioSourceType; public AudioSourceType audioSourceType;
@@ -17,8 +19,14 @@ public class AppleAudioSource : MonoBehaviour
[HideInInspector ] public int clipPriority; [HideInInspector ] public int clipPriority;
public int sourcePriority; public int sourcePriority;
protected override void Awake()
{
base.Awake();
audioSource = GetComponent<AudioSource>();
}
// Start is called once before the first execution of Update after the MonoBehaviour is created // Start is called once before the first execution of Update after the MonoBehaviour is created
void OnEnable() protected override void OnManagedAwake()
{ {
audioSource = GetComponent<AudioSource>(); audioSource = GetComponent<AudioSource>();
AudioManager.Instance.RegisterNewAudioSource(this); AudioManager.Instance.RegisterNewAudioSource(this);
@@ -54,6 +62,10 @@ public class AppleAudioSource : MonoBehaviour
public void Play(int requestedClipPriority) public void Play(int requestedClipPriority)
{ {
if (audioSource == null)
{
audioSource = GetComponent<AudioSource>();
}
clipPriority = requestedClipPriority; clipPriority = requestedClipPriority;
if (audioSourceType == AudioSourceType.CriticalVO || audioSourceType == AudioSourceType.VO) if (audioSourceType == AudioSourceType.CriticalVO || audioSourceType == AudioSourceType.VO)
{ {

View File

@@ -4,8 +4,10 @@ using System;
using System.Diagnostics.Tracing; using System.Diagnostics.Tracing;
using UnityEngine; using UnityEngine;
using UnityEngine.Audio; using UnityEngine.Audio;
using Core;
using Core.Lifecycle;
public class BushAudioController : MonoBehaviour public class BushAudioController : ManagedBehaviour
{ {
private IAudioEventSource _eventSource; private IAudioEventSource _eventSource;
public AppleAudioSource VOPlayer; public AppleAudioSource VOPlayer;
@@ -20,7 +22,7 @@ public class BushAudioController : MonoBehaviour
// Start is called once before the first execution of Update after the MonoBehaviour is created // Start is called once before the first execution of Update after the MonoBehaviour is created
void Start() protected override void OnManagedAwake()
{ {
_eventSource = VOPlayer.audioSource.RequestEventHandlers(); _eventSource = VOPlayer.audioSource.RequestEventHandlers();
_eventSource.AudioStopped += PlayBirdCounter; _eventSource.AudioStopped += PlayBirdCounter;

View File

@@ -1,18 +1,17 @@
using Core; using Core;
using Core.Lifecycle;
using UnityEngine; using UnityEngine;
using UnityEngine.Audio; using UnityEngine.Audio;
public class PulverAudioController : MonoBehaviour public class PulverAudioController : ManagedBehaviour
{ {
private AppleAudioSource audioSource; public AppleAudioSource audioSource;
public AudioResource combineAudio; public AudioResource combineAudio;
private FollowerController followerController; private FollowerController followerController;
public ItemManager itemManager; public ItemManager itemManager;
// Start is called once before the first execution of Update after the MonoBehaviour is created protected override void OnManagedAwake()
void Start()
{ {
audioSource = GetComponent<AppleAudioSource>();
followerController = GetComponent<FollowerController>(); followerController = GetComponent<FollowerController>();
followerController.PulverIsCombining.AddListener(PulverIsCombining); followerController.PulverIsCombining.AddListener(PulverIsCombining);