유니티에서 Scene 관련 함수를 사용시에는
using UnityEngine.SceneManagement;
유니티에서 제공하는 SceneManagement 라이브러리를 작성합니다.
이제 씬 전환마다 호출되는 함수적용을 위해 Start() 함수에 아래와 같은 코드를 작성해줍니다.
void Start()
{
SceneManager.sceneLoaded += OnSceneLoaded;
}
이제 씬 전환될때마다 호출되는 함수인 OnSceneLoaded()를 써줍니다.
void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
{
}
위 코드는 Start()함수에 작성한 SceneManager.sceneLoaded += OnSceneLoaded; 이 없으면 작동하지 않는 것 같습니다.
그리고 씬 이름을 가져올때에는 OnSceneLoaded메소드의 매개변수인 arg0을 이용해서
arg0.name 을 통해 씬 이름을 가져올 수 있습니다.
씬마다 배경음을 다르게 하고싶을때에는
private void OnSceneLoaded(Scene arg0, LoadSceneMode arg1)
{
for(int i=0; i<BGMList.Length; i++)
{
if(arg0.name == BGMList[i].Stagename)
{
musicSource.clip = BGMList[i].audio;
musicSource.volume = 0.5f;
musicSource.loop = true;
musicSource.Play();
}
}
}
이런식으로 씬이름과 비교하여 배경음악을 바꿀 수 있었습니다.
'게임개발 > 유니티' 카테고리의 다른 글
[유니티] Unity 인벤토리 및 아이템 습득 Inventory and GetItem (1) | 2024.01.27 |
---|---|
[유니티] Unity 2D 아이템 습득 및 구현 ITEM (1) | 2024.01.27 |
[Unity] 씬(Scene) - 특정 씬 이동 / 씬 전환 (0) | 2023.09.18 |
[Unity] 유니티 사진들 슬라이스 하기 - PNG Slice (0) | 2023.08.20 |
[Unity] 에셋 구매 후 유니티에 적용시키기 (0) | 2023.08.20 |