UI 버튼 Event 자동 맵핑화

이재형·2025년 6월 18일

MinerFergus 개발 정리

목록 보기
2/10
post-thumbnail

개발 목적

UI의 버튼에 메서드를 자동으로 맵핑해주는 기능을 생성

구조 진행 순서

1. UI의 버튼의 Event를 추가하는 CS를 생성
2. UI의 클래스에 버튼 오브젝트 이름과 같은 이름으로 메서드 생성
3. 생성한 이름과 메서드를 딕셔너리에 저장
4. UI가 동적 생성하고 맵핑 실행


1. UI의 Event를 관리하는 클래스 생성

UI_Function.CS를 만들어 버튼의 맵핑하기 위한 컴포넌트 세팅하고
FuctionMapping을 추상화하여 강제성을 부여 UI의 CS에서 맵핑을 하는 메서드를 생성

UI의 CS생성 후 UI_Fuction, UIInit을 상속

배열 buttons에 GetComponentsInChildren<Button>컴포넌트를 저장
이후 버튼 Event에 Foreach로 메서드를 추가하는 기능 생성


2. UI의 클래스에 버튼 오브젝트 이름으로 메서드 생성
예시: Intro UI

하이라키뷰에서 버튼의 오브젝트 이름을 정의

버튼 오브젝트와 같은 이름으로 메서드 생성 후 관련 기능 추가


3. 생성한 이름(키)과 메서드(값)를 딕셔너리에 저장

<String, UnityAction>형식으로 딕셔너리로 저장


4. UI가 동적 생성하고 맵핑 실행

UIManager에서 UIInit(인터페이스)를 실행

동적 생성한 UI(탈출)
동적 생성한 UI를 한번에 인터페이스(UIInit으로 실행)

씬에 생성한 UI(인트로)
씬에서 시작하므로 Start에서 실행


실제 인게임 이미지

CS 이미지

버튼 컴포넌트에 이벤트가 없는 상황

버튼을 클릭 후 로그에 뜨는 것을 볼 수 있음


마무리하면서...

현재 UI가 생성된 이후에 처음에만 자동 맵핑을 하도록 설계가 되어있는데
나아가 게임 도중에서 이벤트를 추가해주는 기능을 추가하는 방식도 고려해야 할 것

profile
한국사람

0개의 댓글