유니티 / / 2025. 8. 16. 23:12

Unity 기능 리뷰 - ScriptableObject (오디오 라이브러리 예제)

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는 효과음 데이터를 하나의 독립된 에셋으로 관리하여,
씬과 코드에 종속되지 않고 여러 곳에서 재사용 가능하게 만드는 데이터 컨테이너로 사용 가능합니다!

 

 

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유