What could I use in replacement of OnPostPipelineStageDelegate /

24 Views Asked by At

I am trying to create a script in unity that plays a audio source when being followed, Apparently OnPostPipelineStage and OnPostPipelineStageDelegate no longer exist in cinemachinevirtualcamera base so anything i could do, I am really stumped here.

Code:

using UnityEngine;

public class CharacterAudioPlayer : MonoBehaviour
{
    private AudioSource audioSource;

    private void Start()
    {
        audioSource = GetComponent<AudioSource>();
    }

    public void PlayAudio()
    {
        if (audioSource != null && !audioSource.isPlaying)
        {
            audioSource.Play();
        }
    }

    public void StopAudio()
    {
        if (audioSource != null && audioSource.isPlaying)
        {
            audioSource.Stop();
        }
    }

    private void OnEnable()
    {
        Cinemachine.CinemachineVirtualCameraBase.OnPostPipelineStageDelegate += CheckVirtualCamera;
    }

    private void OnDisable()
    {
        Cinemachine.CinemachineVirtualCameraBase.OnPostPipelineStage -= CheckVirtualCamera;
    }

    private void CheckVirtualCamera(
        Cinemachine.CinemachineVirtualCameraBase virtualCamera,
        Cinemachine.CinemachineCore.Stage stage)
    {
        if (stage == Cinemachine.CinemachineCore.Stage.Finalize)
        {
            if (virtualCamera.LookAt == transform || virtualCamera.Follow == transform)
            {
                PlayAudio();
            }
            else
            {
                StopAudio();
            }
        }
    }
}

I tried to make a script that played a audio source of a character when being followed by the camera, I expected for it to be followed and play the audio source and it gave me a error saying that those functions no longer exist.

0

There are 0 best solutions below