유니티 통합
골프 템플릿은 또한 유니티에서 원활한 게임 플레이 상호 작용과 보기를 지원하는 스크립트를 제공합니다.
CameraController
CameraController
는 메인 카메라 이동을 처리합니다. 이 컨트롤러는 실제 카메라가 지향하는 위치와 회전 값을 나타내는 _dummy
Transform
를 가지고 있습니다. 뒤에 나오는 _target
은 카메라가 현재 보고 있는 EntityPrefabRoot
컴포넌트를 가진 게임 오브젝트입니다. 이 게임 오브젝트 참조는 글로벌 CurrentTurn
의 Active
엔티티가 업데이트되면 자동으로 업데이트됩니다.
컨트롤러는 플레이어 입력을 판독하여 카메라를 이동, 기울임 및 확대/축소합니다.
상대 위치
: 대상 실체에 상대적인 카메라의 위치.상대 회전
: 카메라가 상대 위치에 위치하여 대상 물체를 바라본 후 추가된 회전량다음 타겟
: 카메라가 대상 물체를 따라 움직일지 여부 결정.러프 가속도
: 실제 카메라를 더미 변환 쪽으로 돌릴 때 사용하는 단계 팩터.줌 민감도
: 대상 엔티티를 확대 및 축소할 때 사용가장 가까운 거리
: 대상 엔티티를 확대할 때 허용되는 가장 가까운 거리가장 먼 거리
: 대상 엔티티를 축소할 때 허용되는 가장 먼 거리회전 민감도
: 플레이어가 카메라를 상하좌우 이동하거나 기울일 때 사용되는 스케일 팩터회전 반전
: 마우스 드래그 값은 카메라를 상하좌우 이동하거나 기울이기 전에 반전됨타겟 클릭 가능한 영역 반지름
: 클릭하는 것으로 간주되는 대상 엔티티 주위의 원 반지름
TurnClock
UITurnClock
스크립트는 CurrentTurn
이 타이머를 사용하고 중앙 시계 패널에 표시되는 시간을 업데이트할 때 시뮬레이션에서 글로벌 CurrentTurn
의 남은 턴 시간을 폴링 하는 역할을 합니다.
FairTimer
FairTimer
스크립트는 보다 현실적인 타이머보다 더 공정한 타이머를 현지 플레이어에게 표시하는 패턴을 제시합니다. 클라이언트의 RTT 및/또는 입력 오프셋을 고려합니다.
주의: 이 경우 시뮬레이션 측면의 어떤 것도 간섭하지 않습니다. 현재 턴 타이머는 모든 클라이언트에서 동기화되며, 플레이어의 지연에 비례하여 플레이어에게 표시되는 값만 표시됩니다. 이 기능은 구성 가능한 옵션 기능으로, 원하는 동작에 도달하도록 조정해야 합니다.
골프 템플릿에 제시된 FairTimer
솔루션은 게임 플레이에 구애받지 않으며 사소한 변경만으로 모든 타이머 기반 턴 기반 게임에 사용할 수 있습니다.
StartCountdown
UIStartCountdown
스크립트는 첫 번째 턴이 시작되기 전에 화면 중앙에서 시각적 타이머 카운트다운 표시를 처리합니다.
PlayerView
UIPlayerView
는 주어진 플레이어의 TurnData
정보를 폴링하고 그에 따라 시각적 요소를 활성화/비활성화/업데이트하는 역할을 담당합니다. 여기에는 다음이 포함됩니다.
- 플레이어 차례가 끝났을 때 턴
Number
를 늘립니다. - 플레이어의 상태가 변경될 때 상태 텍스트를 변경합니다.
- 차례가 비활성 상태이거나 플레이어가 로컬이 아닐 때 건너뛰기 버튼을 사용할 수 없게 합니다.
- 플레이어의 채울 수 있는 링 타이머를 업데이트합니다.
스코어
UIScore
스크립트는 시뮬레이션을 통해 게임 플레이 엔드 이벤트가 발생했을 때 플레이어들의 스코어 정보를 담은 스코어 패널을 활성화하는 역할을 합니다.