일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 백준 17070번 c++
- 플레이어 이동
- 2870번 수학숙제 c++
- Beakjoon
- Lv2
- 2870번 c++
- dfs
- 백준 c++ 2468번
- 2870번 수학숙제
- 2870번
- C#
- 백준
- 수학숙제
- 프로그래머스
- 코테
- 백준 1103번 c++
- Lv.3
- 백준 c++ 2870번
- 유니티
- 백준 17070번
- 백준 1103번
- 17070번
- c++
- 2468 c++
- 백준 1103번 게임
- 오브젝트 풀링
- 코딩테스트
- Algorithm
- 백준 2870번
- Unity
- Today
- Total
주녘공부일지
[ShootingGame] 5. UI 간단하게 완성하기 본문
0. 목숨과 점수 UI 배치
- UICanvas 에 Text와 Image를 추가하여 Rect Transform를 설정
Tip) 우측 이미지 상태에서 Shift와 Art를 눌러서 선택
- Scale With Screen Size : 기준 해상도의 UI 크기 유지 // 웬만하면 이 외에는 사용할 일 없음
1. UI 로직
- 각 적 기체의 점수는 Enemy 스크립트에서 int형 변수로 선언하여 관리
- Text, Image, 등의 UI 변수는 using UnityEngine.UI를 선언해야 사용 가능
string.Format() : 지정된 양식으로 문자열을 변환해주는 함수
- "{0:n0}" : 세자리마다 쉼표로 나누는 양식
UpdateLifeIcon(int life) : int형 변수 life를 인자로 받아서 lifeIcon 상태를 갱신해주는 함수
- 모두 투명상태로 만들고, 남아있는 라이프만큼만 표시되는 로직
GameOver() : 목숨이 다하면 실행될 함수
- 게임오버 상태로 돌입할 때 띄울 UI를 묶어놓은 오브젝트를 SetActive 시킴 // 활성화
GameRetry() : 씬을 다시 불러옴
- 씬 빌드에 할당되어있는 번호인 0을 입력하였고, 씬 이름으로 할 수도 있음.
+ 씬을 관리하기 위해서 using UnityEngine.SceneManagement; 를 선언해야 사용 가능
2. 게임오버 조건 설정과 예외 처리 ( 피격 중복이 가능한 버그 )
- 피격 중복을 방지하기 위한 bool IsHit를 Player 스크립트에 추가 ( 기본 상태 false로 초기화 )
- 피격 시에 isHit가 true인지 바로 확인해 true 상태라면 return 시키고 아닐 시엔 isHit를 true로 바꾸고 로직실행
- playerLogic 을 선언해 플레이어를 리스폰 시킨 후에는 player의 isHit를 false로 만드는 로직
https://github.com/godgjwnsgur7/ShootingGame
강의 출처
https://www.youtube.com/watch?v=qXa7y1Que6s&list=PLO-mt5Iu5TeYtWvM9eN-xnwRbyUAMWd3b&index=5
'GameDevelopment > [Unity] Lecture' 카테고리의 다른 글
[ShootingGame] 7. 원근감있는 무한 배경 만들기 + 페럴렉스, 스크롤링 (0) | 2022.01.31 |
---|---|
[ShootingGame] 6. 아이템과 필살기 구현하기 (0) | 2022.01.29 |
[ShootingGame] 4. 적 전투와 피격 이벤트 만들기 (0) | 2022.01.28 |
[ShootingGame] 3. 적 비행기 만들기 (0) | 2022.01.27 |
[ShootingGame] 2. 총알 발사 구현하기 (0) | 2022.01.26 |