- 개요
씬에 존재하는 특정한 GameObject를 참조하기 위해 사용하던 Tag 참조 코드를 완전히 제거한다
UI들은 UIManager 클래스를 추가하여, 플레이어별로 UIManager에 등록하여 참조할 수 있도록 설계하고
플레이어의 경우 Tag를 통해 가져오는 것이 아닌, 컴포넌트를 통해 참조할 수 있도록 수정한다
- 스크립트 작업
1) UI 관련 스크립트
1 - 1) UIManager 클래스

위와 같이 클라이언트별로 UI를 등록하기 위한 딕셔너리를 추가한다

각각의 딕셔너리는 위와 같이 3개의 함수로 구성되어 있다
- Register 함수 : UI의 이름을 사용하여 UI를 등록
- UnRegister 함수 : UI의 이름을 사용하여 등록한 UI를 등록해제
- Get 함수 : UI의 이름을 사용하여 등록한 UI를 탐색하여 반환
1 - 2) UI_NickName 클래스

Awake 함수를 추가하고 위와 같이 로직을 구성하여 UIManager에 등록한다
1 - 3) DisplayColor 클래스

기존의 GameObject를 사용하던 코드 대신 등록한 UI_NickName 컴포넌트를 사용하여 로직을 수행한다
1 - 4) UI_PlayerAim 클래스

조준선 UI에 사용하기 위한 UI_PlayerAim 클래스를 추가하고
동일하게 Awake 함수를 추가하여 UIManager에서 등록할 수 있도록 설정한다
1 - 5) PlayerLookAimRef 클래스

PlayerLookAimRef 클래스에서 등록한 UI_PlayerAim 클래스를 사용하여 로직을 수행한다
1 - 6) UI_WeaponAmmo 클래스 + UI_WeaponSlots 클래스


무기의 탄창과 현재 사용중인 무기를 보여주는 UI에서 사용하기 위한 클래스를 추가한다
2개의 클래스 모두 Awake 함수에서 UIManager에 등록한다
1 - 7) PlayerWeaponChange 클래스

Start 함수에서 GameObject를 사용하는 것이 아닌 UIManager에 등록된 UI를 사용하도록 수정한다

SwapWeapon 함수에서 등록된 UI를 사용하여 필요한 컴포넌트 멤버변수를 설정한다
1 - 8) UI_PlayerNameBG 클래스

접속한 플레이어들의 이름과 체력을 보여주는 UI에 사용할 UI_PlayerNameBG 클래스를 추가한다
Awake 함수를 호출하여 UIManager에 해당 UI를 등록한다
1 - 9) UI_ChooseColor 클래스

Start 함수에서 Tag를 통해 GameObject를 탐색하는 대신 등록한 UI를 사용하도록 수정한다
2) Player 관련 스크립트
2 - 1) UI_ChooseColor 클래스

기존의 플레이어 관련 Tag를 지닌 GameObject를 탐색하는 로직을 수정하여
PlayerController 컴포넌트를 지닌 GameObject를 탐색하도록 개선한다
이때 탐색이 끝난 GameObject를 따로 정렬하지 않도록 설정하여 작업 효율을 증가시킨다
- 최종 실행 결과


'유니티 엔진 - 게임 프로젝트 > Photon을 사용한 멀티 플레이어 게임' 카테고리의 다른 글
| UI 설정 - 최종) Room 퇴장 구현과 Lobby 퇴장 개선 (0) | 2026.04.22 |
|---|---|
| UI 설정 - 6) 점수판 UI (0) | 2026.04.21 |
| UI 설정 - 5) 기존의 코드 수정 + 타이머와 장착한 무기 표현 (0) | 2026.03.31 |
| UI 설정 - 4) 접속한 플레이어의 이름 표시 (0) | 2026.03.31 |
| UI 설정 - 3) 플레이어별 색상 설정 (0) | 2026.03.30 |