728x90
반응형
- 개요
플레이어가 Room에 입장하여 사용할 색을 선택한 이후에 타이머를 설정하여 게임의 제한 시간을 적용한다
또, 플레이어가 현재 사용중인 무기를 표현하는 UI를 추가한다
- 스크립트 작업
1) DisplayColor 클래스 + 그 외

기존에 사용하던 GetComponent 함수 대신 Util 클래스의 GetOrAddComponent 함수를 사용하여
Start 함수의 실행 시점에서 가져오지 못한 컴포넌트를 참조한다
또, 참조하는 다른 GameObject 역시 함수의 시점에서 다시 한번 검증하여 참조할 수 있도록 한다
2) PlayerWeaponChange 클래스

위와 같이 멤버변수를 추가한다
- weaponIcons 멤버변수 : 사용중인 무기의 이미지
- ammoAmounts 멤버변수 : 사용중인 무기의 탄창 수
- weaponIcon 멤버변수 : 현재 사용중인 무기의 이미지를 표현할 UI
- ammoAmount 멤버변수 : 현재 사용중인 무기의 탄창 수를 표현할 UI

Start 함수에 로직을 추가하여 현재 사용중인 무기와 관련된 UI 멤버변수의 값을 설정한다

SwapWeapon 함수에 로직을 추가하여 무기를 전환하면 현재 사용중인 무기의 UI를 갱신한다
3) UI_Timer 클래스

게임의 제한시간을 보여주는 UI_Timer 클래스를 생성한다
멤버변수의 구성은 위와 같다
- minutesText 멤버변수 : 남은 게임의 분을 보여주는 UI
- secondsText 멤버변수 : 남은 게임의 초를 보여주는 UI
- minuets 멤버변수 : 게임의 기본 진행 시간 중 분
- seconds 멤버변수 : 게임의 기본 진행 시간 중 초

UI_Timer 클래스의 함수 구성은 위와 같다
함수의 호출 순서는 다음과 같다
- 1) 플레이어의 색상을 선택한 후에 외부에서 BeginTimer 함수를 호출
- 2) BeginTimer 함수에서 AllBuffered RPC 타입의 Count 함수를 호출
- 3) Count 함수에서 내부적으로 BeginCounting 함수를 호출
- 4) BeginCounting 함수에서 TimeCountDown 함수를 1초 뒤에 1초 간격으로 호출
- 최종적으로 1초씩 감소하는 타이머를 생성
4) UI_ChooseColor 클래스

인게임에서 사용하고 있는 플레이어 이름 + 체력바 + 타이머의 조상 UI를 멤버변수로 추가하고
Start 함수에서 추가한 멤버변수의 값을 설정한다

SelectedColor 함수에 로직을 추가하여 색을 선택한 후에 타이머를 적용한다
- 애셋 작업
1) 인게임 - 참여중인 플레이어 관련 조상 UI

위와 같이 Tag를 설정한다
2) 인게임 - 착용중인 무기 관련 UI


위와 같이 Tag를 설정한다
- 최종 실행 결과


728x90
반응형
'유니티 엔진 - 게임 프로젝트 > Photon을 사용한 멀티 플레이어 게임' 카테고리의 다른 글
| UI 설정 - 4) 접속한 플레이어의 이름 표시 (0) | 2026.03.31 |
|---|---|
| UI 설정 - 3) 플레이어별 색상 설정 (0) | 2026.03.30 |
| UI 설정 - 2) PUN 프레임워크의 Lobby 구현 (0) | 2026.03.24 |
| UI 설정 - 1) 메인메뉴 구현 (0) | 2026.03.24 |
| 서버 연결 - 개선) 오브젝트 관리 + 컴포넌트 참조 개선 (0) | 2026.03.23 |