유니티 엔진 - 게임 프로젝트/Photon을 사용한 멀티 플레이어 게임

UI 설정 - 5) 기존의 코드 수정 + 타이머와 장착한 무기 표현

monstro 2026. 3. 31. 15:51
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
반응형