[Unity] OnSceneLoaded

jaehyeonLee·2024년 8월 15일
0


게임에 생동감을 불어 넣어주는 음악, 그런 음악을 어떻게 넣어줄수 있을까
음악을 넣을 때 마을이나 던전 등의 bgm, 플레이어가 칼을 휘두르거나 마법을 사용한다거나의 이펙트 소리, bgm 이 나오면서 이펙트 소리가 나오도록 만들어주어야한다.
그걸 위한 함수가 PlayOneShot 이다 .
밑의 코드는 내가 어떻게 SondManager 를 구현했는지 에 대해 나와있다.

SingleTon 과 ResourcesManager 구현에 대해서는 후에 설명하도록하겠다.

using JetBrains.Annotations;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public enum SceneSound 
{
    Title=0,
    Game=1
}


public class SoundManager :SingleTon<SoundManager>
{
    [SerializeField] AudioSource scenerySource;
    [SerializeField] AudioSource effectSource;
    SceneSound sceneSound;
   public void Sound(AudioClip audioClip)
   {
        effectSource.PlayOneShot(audioClip);
   }

    private void OnEnable()
    {
        SceneManager.sceneLoaded += OnSceneLoaded;  
    }
    void OnSceneLoaded(Scene scene , LoadSceneMode mode) 
    {
        sceneSound = (SceneSound)scene.buildIndex;
        scenerySource.clip = ResourcesManager.Instance.Load<AudioClip>(sceneSound.ToString());
        scenerySource.loop = true; 
        scenerySource.Play();
    }
    private void OnDisable()
    {
        SceneManager.sceneLoaded -= OnSceneLoaded;

    }

}
profile
이재현의 필기노트

0개의 댓글