참고 : http://archive.fo/5Mifm
저장하고 싶은 형식을 가지고있는 ScriptableObject를 상속받는 스크립트를 만든다.
추가적으로 CSV파일 등에서 데이터를 로드해서 자신의 변수에 저장하는 함수도 만든다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | using UnityEngine; using System.Collections; using System.Collections.Generic; using System; // 에디터에서 프리팹에다가 값을 넣어놓고 싶을때 사용하기위해 임시로 제작 [CreateAssetMenu] public class ScriptableDataBase : ScriptableObject { [SerializeField] public List<CharacterBase.CharStruct> Machiknight_Base; [SerializeField] public List<CharacterBase.CharStruct> Enemy_Base; public void LoadDataAll() { ReadCharData("knight_Base.csv", Base); ReadCharData("Enemy_Base.csv", Enemy_Base); } public void ReadCharData(string fileName, List<CharacterBase.CharStruct> Datalist ) { // 데이터 불러오는 부분 } } | cs |
에디터 스크립트도 만들어서 붙여준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; [CustomEditor(typeof(ScriptableDataBase))] public class ScriptableDataBaseEditor : Editor { public override void OnInspectorGUI() { DrawDefaultInspector(); ScriptableDataBase myScript = (ScriptableDataBase)target; if (GUILayout.Button("Resource폴더로부터 업데이트")) { myScript.LoadDataAll(); // 시트로부터 업데이트 } } } | cs |
Resources폴더에서 오른쪽클릭해서 Create 해주고 버튼을 누르면 CSV 파일등에서 로드된 데이터가 ScriptableDataBase에 저장된다.
나중에 사용할때는
ScriptableDataBase _ScriptableDataBase = Resources.Load("ScriptableDataBase") as ScriptableDataBase;
과 같이 불러오면 된다.
'🌍 Unity > 유니티 프로그래밍' 카테고리의 다른 글
유니티 로딩 화면 구현 ( Unity Loading system ) (0) | 2019.01.03 |
---|---|
지연된 초기화 Lazy Initialization (0) | 2018.12.27 |
유니티 구글 스프레드 시트 연동 (0) | 2018.12.13 |
유니티 Unity ABC 파일 alembic 파일 넣기 (0) | 2018.11.13 |
유니티 구조체 인스펙터 창에서 보기 Unity struct inspector (0) | 2018.11.11 |