728x90
반응형
- 개요
레벨을 구성하는 타일을 일일이 추가하여 수정하고 배치하는 것은 번거로운 일이다
유니티의 에디터를 확장하여 타일을 자동으로 추가하여 수정하고 배치하는 시스템을 설계한다
- 스크립트 작업
1) TileSlot 클래스

레벨을 구성하는 하나의 타일 프리팹의 컴포넌트 클래스를 추가한다
ButtonClick 함수를 위와 같이 추가하여 에디터에서 버튼을 누르면 필요한 동작을 수행한다
2) TileSlotEditor 클래스

TileSlot 클래스에 대한 커스텀 에디터 클래스를 정의한다
위와 같이 어트리뷰트를 사용하여 클래스를 설정한다
- CustomEditor 어트리뷰트 : TileSlot 클래스에 대한 커스텀 화면을 에디터에 띄움
- CanEditMultipleObjects 어트리뷰트 : TileSlot 컴포넌트가 수식된 여러개의 오브젝트를 동시에 선택 가능

Unity 에디터가 인스펙터 창을 그릴 때 프레임마다 호출하는 OnInspectorGUI 함수를 위와 같이 오버라이드한다
- serializedObject.Update 함수를 호출하여 선택한 오브젝트들의 데이터를 최신화
- 부모 버전의 함수 호출
- 인스펙터 창에 "My First Button"이라는 텍스트가 적힌 버튼을 생성
- targets 멤버변수를 사용하여 에디터에서 선택한 오브젝트들을 순회
- 선택한 오브젝트를 TileSlot으로 캐스팅 + ButtonClick 함수를 호출
- 최종 실행 결과

위와 같이 TileSlot 컴포넌트가 수식된 타일 프리팹의 오브젝트에 My First Button 버튼이 생성되었다

My First Button 버튼을 클릭하면 위와 같이 ButtonClick 함수가 호출되어 로그가 출력되는 것을 확인할 수 있다
728x90
반응형
'유니티 엔진 - 게임 프로젝트 > 타워 디펜스 게임' 카테고리의 다른 글
| 레벨 생성 - 3) 변경할 수 있는 타일 추가 + 타일의 세부 사항 변경 (0) | 2026.06.08 |
|---|---|
| 레벨 생성 - 2) 타일 변경 (0) | 2026.06.08 |
| 데미지 시스템 - 최종) 유닛의 타겟 설정 방식과 공격 FX 효과 개선 (0) | 2026.06.02 |
| 데미지 시스템 - 2) 타워 유닛의 공격 방식 개선 (0) | 2026.06.02 |
| 데미지 시스템 - 1) 적 추적 방식 개선 (0) | 2026.06.01 |