Unity 이론 (namespace, ScriptableObject, EditorWindow, string)

로젠·2024년 5월 21일
0

게임 프로그래밍

목록 보기
43/49
post-thumbnail

namespace

namespace는 클래스들을 묶어 분류를 해주는 것이다.

namespace UserEditor
{
}

CreateAssetMenu

CreateAssetMenu는 menu를 통해 Asset을 생성해 주는 것이다. 해당 코드는 Create에서 Playbles를 선택하면 첫 번째에 Enemy Spawn Point를 생성해 주고 Enemy Spawn Point를 누르면 fileName과 같은 형태의 Object가 생성된다.

[CreateAssetMenu(fileName = "SpawnPoint", menuName = "Playables/Enemy Spawn Point", order = 1)]

MenuItem은 Unity 창에서 왼쪽 위에 선택할 수 있는 것으로 property는 우선순위를 말한다. 이는 단축키를 삽입할 수 있고 해당 코드는 ctrl+alt+F1를 단축키로 설정한 것이다.

[MenuItem("Window/SpawnData/Enemy %&F1", priority = 1)]

ScriptableObject

ScriptableObject은 CreateInstance라는 함수를 가지고 있다.

spawnPoint = CreateInstance<SpawnPoint>();

SerializedObject

serializedObject에서 원하는 형태의 Property를 찾고 해당 게임 오브젝트 형태에 맞는 선택 창을 만들어준다.

SerializedProperty property = serializedObject.FindProperty("MapSize");
                EditorGUILayout.PropertyField(property);

IndexOf

원한은 문자열을 앞에서부터 찾아 해당 문자열을 가장 먼저 만날 때 번지수를 return 해준다.

int start = absolutePath.IndexOf("/Assets/");

LastIndexOf

IndexOf와 문자열을 뒤에서부터 찾아 해당 문자를 만나면 index를 return 해준다.

int end = assetPath.LastIndexOf('/');

Substring

원하는 문자열을 만드는 것으로 원래 있던 문자열에서 원하는 번지수만 잘라 문자열로 return 해준다.

absolutePath = absolutePath.Substring(start + 1, absolutePath.Length - start - 1);

0개의 댓글