데이터 관리시 스크립터블 오브젝트에 리스트를 사용해서 관리하는 경우가 자주 있었는데, 관리해야하는 데이터들이 여러개일때 관련 내용을 하나의 스크립터블 오브젝트 클래스로 관리할 수 없을까 해서 내용을 찾아봤습니다.
스크립터블 오브젝트의 기본이 되는 클래스를 제네릭으로 선언한 뒤, 해당 클래스를 상속시키면서 관리할 데이터타입의 제네릭을 지정해주는 방식입니다.
public class SOList<T> : ScriptableObject
{
public List<T> list;
}
[CreateAssetMenu(fileName = "DataSOList", menuName = "DataSO/Map List")]
public class MapListSO : SOList<MapData>
{
}
현재는 이런 방식이면 상속 시키는 의미가 없어보일 수 있으나, OnValidate() 메서드를 통해 리스트 순서에 맞게 아이디를 부여하는 경우 데이터에 따라 별도의 아이디를 지정할 수 있으며, 특정 값을 통해 원하는 내용을 반환받는 형태의 메서드를 부모 클래스에 구현하여 사용하는등, 확장성을 가지게 되는 장점이 있습니다.
'내일배움캠프 > Unity' 카테고리의 다른 글
유니티 - 터레인(Terrain) (0) | 2025.01.06 |
---|---|
요구한것과 이해한것 (0) | 2024.10.25 |
유니티 기능 - Rule Tile (0) | 2024.10.07 |
유니티 기능 - 타일맵 (0) | 2024.10.07 |
유니티 추가기능 - DOTween 2 (0) | 2024.09.13 |