Resources 폴더 사용 지양
Addressables 사용 시 리소스 중복 주의
아래처럼 AudioSource 애셋이 있을 때
A (addressable)
B (non-addressable)
App.Audio.MasterVolume 등으로 전체 볼륨을 컨트롤 할 수 있는 기능 사용 시
B 애셋의 AudioSource 는 볼륨 변경 안됨
* 빌드에서만 발생하므로 주의 *
처음 시작 씬도 Addressables 이어야 하므로 아래 스크립트만 존재하는 빈 씬을 Entry Point 로 사용할 것
public class InitialScene : MonoBehaviour
{
private void Awake()
{
Addressables.LoadSceneAsync("TitleScene");
}
}
// ResourceHolder.cs
// 동기 로딩, Editor 에서 사용
public void LoadAll()
{
// "ui", "common" 라벨이 달린 UI 리소스 로드
// see (ResourceHolder.Foundation.Load.cs)
LoadUI(1, new string[] { "ui", "common" });
LoadAssets();
}
// 비동기 로딩, 빌드에서 사용
public IEnumerator LoadAllAsync(ILoadingReceiver.Data loadingReceiver)
{
LoadUI(1, new string[] { "ui", "common" });
yield return LoadAssetsAsync(loadingReceiver);
}
// Load Methods
{
// AssetType 애셋 로드
LoadObject<AssetType>(unload_flag, "asset_key", onLoadedCallback);
LoadObject<GameObject, TComponent>(unload_flag, "asset_key", obj => obj.GetComponent<TComponent>(), onLoadedCallback);
// VFX
LoadVFX(unload_flag, "asset_key");
// SFX
LoadAudioClip(unload_flag, "asset_key");
// Sprite
LoadSprite(unload_flag, "asset_key");
// UI
LoadUI(unload_flag, "asset_key");
}