주녘공부일지

[ShootingGame] 5. UI 간단하게 완성하기 본문

GameEngine/Unity - Lecture

[ShootingGame] 5. UI 간단하게 완성하기

주녘 2022. 1. 28. 18:00
728x90

Scripts.zip
0.00MB

 

0. 목숨과 점수 UI 배치

 

Life Icon 추가, Over Set은 비활성화 상태로 셋팅 ( 우측 이미지는 활성화 시 )
UICanvas Scaler 기준 해상도 값 설정

 

- UICanvas 에 Text와 Image를 추가하여 Rect Transform를 설정

  Tip) 우측 이미지 상태에서 Shift와 Art를 눌러서 선택

 

- Scale With Screen Size : 기준 해상도의 UI 크기 유지 // 웬만하면 이 외에는 사용할 일 없음

 

 

1. UI 로직

 

class Enemy - OnHit()에 점수 올리는 로직 추가

 

- 각 적 기체의 점수는 Enemy 스크립트에서 int형 변수로 선언하여 관리

 

class GameManager

 

- Text, Image, 등의 UI 변수는 using UnityEngine.UI를 선언해야 사용 가능

 

class GameManager - Update()

 

string.Format() : 지정된 양식으로 문자열을 변환해주는 함수

- "{0:n0}" : 세자리마다 쉼표로 나누는 양식

 

class GameManager

 

UpdateLifeIcon(int life) : int형 변수 life를 인자로 받아서 lifeIcon 상태를 갱신해주는 함수

- 모두 투명상태로 만들고, 남아있는 라이프만큼만 표시되는 로직

 

GameOver() : 목숨이 다하면 실행될 함수

- 게임오버 상태로 돌입할 때 띄울 UI를 묶어놓은 오브젝트를 SetActive 시킴 // 활성화

 

GameRetry() : 씬을 다시 불러옴

- 씬 빌드에 할당되어있는 번호인 0을 입력하였고, 씬 이름으로 할 수도 있음.

 + 씬을 관리하기 위해서 using UnityEngine.SceneManagement; 를 선언해야 사용 가능

 

 

2. 게임오버 조건 설정과 예외 처리 ( 피격 중복이 가능한 버그 )

 

class Player

 

- 피격 중복을 방지하기 위한 bool IsHit를 Player 스크립트에 추가 ( 기본 상태 false로 초기화 )

- 피격 시에 isHit가 true인지 바로 확인해 true 상태라면 return 시키고 아닐 시엔 isHit를 true로 바꾸고 로직실행

 

class GameManager

 

- playerLogic 을 선언해 플레이어를 리스폰 시킨 후에는 player의 isHit를 false로 만드는 로직

 

 

 

https://github.com/godgjwnsgur7/ShootingGame

 

GitHub - godgjwnsgur7/ShootingGame

Contribute to godgjwnsgur7/ShootingGame development by creating an account on GitHub.

github.com

 

강의 출처

https://www.youtube.com/watch?v=qXa7y1Que6s&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=5 

 

728x90