Unity 내배캠 TIL

Unity 게임 개발 심화 (8주차 3일)

오늘도즐겨 2024. 11. 12. 21:24

🔥 11/12 화요일 목표 🔥

🔎 Unity 입문 재수강 마무리📝

🔎 개인 과제 진행 하기

 

09:00 - 입문강의듣기 💛

12:00 - 꾸준실습

14:00 - 개인과제진행

19:00 - 개인과제진행

 

📌필수구현

더보기

키보드 입력 처리 (난이도: ★☆☆☆☆) - Input / InpurSystem

방향키를 이용하여 플레이어가 좌우 위치를 바꾸거나 앞으로 이동할 수 있도록 하는 기능입니다.

 

오브젝트 생성 기능 (난이도: ★☆☆☆☆) - Prefab

자동차, 나무, 도로 등의 오브젝트를 미리 만들어 Prefab화 해놓고, 플레이어 진행 시 자동으로 생성/삭제가 되는 기능을 구현하세요.

 

충돌 기능 (난이도: ★☆☆☆☆) - collider

충돌 시 게임오버가 되는 기능을 구현 하세요.

동전 아이템을 구현했다면, 동전 아이템 충돌 시 가지고 있는 돈이 올라가는 기능을 구현해주세요.

 

애니메이션 기능 (난이도: ★☆☆☆☆) - Animation & Animator

플레이어 캐릭터가 가만히 있을 때, 이동, 피격할 때의 애니메이션을 구현해주세요.

 

점수 UI 시스템 (난이도: ★★☆☆☆) - UGUI & Coroutine

일정 시간마다 점수가 올라가는 기능을 구현하세요.

점수와 소유한 돈의 변화가 있을 때마다 해당 상태가 UI에 반영되는 기능을 구현하세요.

 

사운드 효과 (난이도: ★★☆☆☆) - 사운드시스템

이동, 아이템 획득, 피격 시의 효과음을 추가하세요.

 

파티클 효과 (난이도: ★★☆☆☆) - 파티클 시스템

캐릭터가 폭죽이 있는 라인을 지날 때, 폭죽이 터지면서 다양한 파티클이 생기는 기능을 구현하세요.

 

자동차 데이터 관리 (난이도: ★★★☆☆) - ScriptableOject

여러 자동차의 속도, 색깔, 크기 등의 데이터를 ScriptableObject로 통합 관리 하세요.

모든 자동차를 하나의 Prefab으로부터 생성하면서,

자동차의 데이터를 받고 있는 ScriptableObject를 입력으로 받아 초기화하는 기능을 생성하세요.

 

오브젝트 생성/삭제 최적화 (난이도: ★★★☆☆) - ObjectPool

Object Pool을 이용하여 오브젝트의 생성/삭제가 반복적으로 이루어지는 상황에서 가비지를 최소화해주세요.

추천: 생성 및 파괴되는 자동차를 Object Pool로 관리해주세요.

 

👀 입문강의 복습 중 생긴 트러블슈팅

 

❓  ClosestTarget을 찾지 못하는 NullReference오류가 발생함

   GameManager Script에서 Player의 Transform을 프로퍼티해주었으나,TopDownEnemyController Script에서 Player의 Transform을 가져오지 못해,

ClosestTarget이 Null이 되었다.

 

💡 Script의 사이클 주기가 겹쳐 생기는 오류였다.

아래와 같이 GameManager Script - Start에서 Awake로 생명주기를 돌려주면 쉽게 찾을 수 있게 된다.

 

💡  또 다른 방법으로는 Execution Order를 변경해주는 것이다.

Script에는 Execution Order 라는 세팅이 있는데, 주로 작성하는 스크립트들은 Defalut Time 영역에 생성된다.

아래의 +버튼을 누르면 작성한 모든 스크립트들이 옵션에 나오는데, 거기서 GameManagerScript만

Defalut Time 위에 위치 시켜주면 다른 스크립트들 보다 가장 먼저 실행되게 된다.

 

💡프리팹화 해서 코드로 Instantiate 해주기!

 

하지만, 아직까지는 스크립트가 많지 않아 굳이 Execution Order에서 세팅해주지 않고,

Start()만 

Awake()로 돌려주었다.

 

Execution Order를 변경하는 창

 

 

 

 

 

 

🔥 11/13 수요일 목표 🔥

🔎 개인 과제 진행 하기 및 제출하기

🔎 Unity 숙련 재수강📝

🔎 Unity 심화수강하기📝