게임에 생동감을 불어 넣어주는 음악, 그런 음악을 어떻게 넣어줄수 있을까
음악을 넣을 때 마을이나 던전 등의 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;
}
}