[Unity] Custom EditorWindow - 리스트 추가

0시0분·2023년 10월 17일
0

Unity

목록 보기
10/17

몇가지 종류의 타일을 3x3 혹은 5x5 크기로 랜덤하게 배치하는 기능을 구현하기 위해
타일을 관리할 리스트가 필요했다.
에디터윈도우에서 타일 버튼을 클릭하면 자동으로 RandomList에 추가되어야 했다.

1. ScriptableObject 사용

단순히 리스트의 내용이 출력되는 기능만 필요했기 때문에 ReorderableList를 사용하지 않았다.

    ScriptableObject scriptableObj;
    SerializedObject serialObj;
    SerializedProperty serialProp;
    
    void OnEnable()
    {
        scriptableObj = this;
        // 대상 오브젝트를 직렬화
        serialObj = new SerializedObject(scriptableObj);
        // "저장할리스트이름"
        serialProp = serialObj.FindProperty("list");
    }
    
    // 동작함수
    {
    	// 연결 ?
    	EditorGUILayout.PropertyField(serialProp, true);
        // 변경사항 저장
    	serialObj.ApplyModifiedProperties();
        
    	// 코드에서 변경된 사항 강제 갱신 (위 함수로는 제대로 적용이 안됐던걸로 기억)
        randomList.Add(prefab);
    	serialObj.UpdateIfRequiredOrScript();
    }

👀 https://forum.unity.com/threads/editorwindow-gameobject-array.509218/



2. ReorderableList 사용

조금 더 커스텀해서 사용하고 싶다면 ReorderableList를 사용하면 되는것 같다.

👀 https://aostols.tistory.com/14
👀 https://tistory.wonsorang.com/664
👀 https://m.blog.naver.com/hammerimpact/220775710045

0개의 댓글