-
4일차 점수 올라가게 하기 ~ 1주차 완료개발일지/스파르타 코딩클럽 유니티 강의 2024. 3. 22. 15:23
4일차로 1주차 강의를 완료했다.
어려운 부분은 없었지만 새로 알게 된 부분도 있었고
복습이 제대로 되어서 공부에 만족하는 편이다.
오늘 배운 내용
- 점수 보드 만들기 (Canvas)
- 싱글톤 화 ( 게임매니저의 독재화(?))
- 점수 올라가는 함수 만들기
- 캐릭터에 맞으면 점수 올라가게 하기
- 올라가는 점수 표기하기
- Retry 판넬 만들기
- 시간 흐르게 하기
- 0초에 판넬이 나오게 하기
- 판넬 클릭하면 다시 시작하게 하기
- 초기화 함수 만들기
새로 알게 된 내용
게임매니저의 싱글톤 화
public static gameManager I; void Awake() { I = this; }
사실 꽤 많은 오류를 없애줄 거라고 생각이 드는 굉장히 중요한 부분이라고 생각하는데
이제서야 처음 알았다.
오늘 발생한 문제
중요하게 생각하는 부분
이전내용들도 당연하지만 오늘 배운 내용들도 다 잊으면 안되는 것들 뿐이었다.
게임매니저 싱글톤 화 ( 위에 코드 있음 )
점수 올라가는 함수
int totalScore = 0; public void addScore(int score) { totalScore += score; }
쉬운 부분이지만 헷갈리기도 좋다고 생각
점수가 올라갈 때마다 Text 변경
public void addScore(int score) { totalScore += score; scoreText.text = totalScore.ToString(); }
***시간 흐르게 하기***
void Update() { limit -= Time.deltaTime; timeText.text = limit.ToString("N2"); }
가장 중요하게 생각하는 Time.deltaTime 함수이다 ( Time.deltaTime 시간이 얼마나 흘렀는지 알려주는 기능)
예전부터 알아도 응용하기 어려웠던 함수
ToString("N2") 는 소수점 둘째자리 수 까지 text에 표시해준다 (ex.60.00)
***0초에 멈추고 판넬 나오게 하기***
void Update() { limit -= Time.deltaTime; if (limit < 0) { limit = 0.0f; panel.SetActive(true); Time.timeScale = 0.0f; } timeText.text = limit.ToString("N2"); }
말 그대로 limit가 0 보다 작아졌을 때
모든 것을 멈추고 판넬이 등장하게 한다.
판넬은 유니티에서 초기 상태를 false로 해놨기 때문에
0초에 등장하게 한다.
***게임매니저에서 씬 불러오기***
using UnityEngine.SceneManagement; public void retry() { SceneManager.LoadScene("MainScene"); }
말 그대로 LoadScene을 통해서 MainScene을 새로고침 한다.
판넬을 클릭하면 retry 함수 작동시키기
public void retry() { gameManager.I.retry(); }
먼저 panel.cs 스크립트를 만들고, 위 함수를 넣어서 게임매니저를 부르고
판넬에 button 컴포넌트를 추가하여 On click 기능에 panel.cs를 추가한다.
*****게임 전체 초기화 시키기*****
가장 중요한 부분
void Start() { InvokeRepeating("makeRain", 0, 0.5f); initGame(); } void initGame() { Time.timeScale = 1.0f; totalScore = 0; limit = 30.0f; }
initGame 함수에 Score를 0으로 limit를 초기상태로 돌린 후
Start에 넣으면
판넬을 클릭해서 retry 함수가 작동해서 LoadScene이 됐을 때
Start 안의 함수들이 다시 작동함으로 다시 게임이 처음부터 시작된다.
숙제까지 완료 !
복습이 잘 되어서 뿌듯하다
'개발일지 > 스파르타 코딩클럽 유니티 강의' 카테고리의 다른 글
7일차 게임 끝내기 (0) 2024.03.27 6일차 풍선 & 마우스 만들기 (0) 2024.03.26 5일차 .. 2주차 시작 (0) 2024.03.25 3일차 빗방울 코딩하기 ~ (0) 2024.03.21 2일차 기본 씬 구성 및 애니메이션 맛보기 ~ (0) 2024.03.20