1. ScriptableObject 란?
유니티에서 데이터를 저장하고 재사용하기 위한 클래스 타입입니다. 그래서 클래스 명 옆에 이렇게 써주시면 됩니다!
[CreateAssetMenu(menuName = "Audio/AudioLibrary")]
public class AudioLibrary : ScriptableObject
{
}
MonoBehaviour처럼 씬에 붙이는 컴포넌트와 달리 ScriptableObject는 독립적인 에셋 파일로 존재합니다. 그래서 씬전환을 하면 바뀌는 컴포넌트가 아니라서 전역적으로 재사용이 가능합니다.
2. 왜 AudioLibrary에ScriptableObject 를?
그래서 앞서 설명했던 CreateAssetMenu로 에셋파일로 만들 수 있게 만든 후 ScriptableObject 이라는 클래스 타입을 씀으로
씬마다 필요한 오디오를 넣거나 DontDestroyonload를 활용하지 않고 데이터 중심 오디오 관리 시스템을 만들 수 있는 것 입니다.
3. ScriptableObject 와 CreateAssetMenu의 관계
ScriptableObject = "에셋으로 만들 수 있는 데이터 클래스"
[CreateAssetMenu] = "그 ScriptableObject를 에디터에서 버튼 한 번으로 생성할 수 있게 해주는 도구"
이렇게 정리 할 수 있습니다!
마무리.
그렇게 public class AudioLibrary : ScriptableObject는 효과음 데이터를 하나의 독립된 에셋으로 관리하여,
씬과 코드에 종속되지 않고 여러 곳에서 재사용 가능하게 만드는 데이터 컨테이너로 사용 가능합니다!
'유니티' 카테고리의 다른 글
| 디자인 패턴 - 옵저버 패턴(Observer Pattern) (0) | 2026.04.02 |
|---|---|
| [패치 리뷰]Unity 6.3 주요 패치 내용!! (0) | 2026.02.10 |
| Unity 기능 리뷰 -렌더 파이프라인 (0) | 2025.11.30 |
| Unity 기능 리뷰 - 스프라이트 아틀라스(Sprite Atlas) (0) | 2025.09.08 |
| Unity 기능 리뷰 - [CreateAssetMenu] (오디오 라이브러리 예제) (11) | 2025.08.15 |
