* 아이템 획득 및 사용 로직
- 적 비행기 파괴 시에 생성되도록 설정.
- 오브젝트 풀링 최적화로 Destroy가 아닌 SetActive로 설정.
- random.ragne를 이용하여 아이템 생성 확률 조정.
* 배경 원근법 (패럴릭스)
- 배경 사진을 여러장 사용.
- 가까운 배경그림은 속도를 빠르게, 멀리 있는 배경그림은 속도를 느리게 하여 원근법 효과 발생.
(속도는 배경 스크립트를 생성하여 Public 변수로 설정.)
- 횡스크롤 게임에서 주로 사용.
* 배경 스크롤링
- 해당 종스크롤에서는 y축을 기준으로 하여 아래 배경을 위로 옮겨주어 무한적으로 배경을 만들어주는 방법.
- 횡스크롤에서는 x축을 기준으로 하면 될듯.
- 카메라 Size에 대한 이해 필요.
- 로직에 대한 구제적인 이해 필요.
* 오브젝트 풀링
- 게임 최적을 위한 작업.
- Instantiate, Destroy로 생성과 파괴를 반복하게 되면 조각난 쓰레기 데이터들이 발생.
유니티 자체에서 조각데이터들을 처리하게위한 작업을 진행하면서 렉 발생.
- 이를 방지하기 위하여 생성, 파괴가 아닌 활성화/비활성화로 오브젝트를 정리.
★ 오브젝트 풀링, 최적화 스크립트 작업 순서.
1) Object Manger 스크립트 생성.
2) 프리펩을 생성하여 저장할 배열 변수 생성. (유니티에서 할당 필요)
3) 한 번에 등장할 오브젝트 갯수를 고려하여 배열 길이 할당.
4) Instantiate로 Object Manger에서 게임 로딩 단계에 일괄적으로 생성 후 비활성화시킴.
5) Object Manger(오브젝트 풀)에 접근할 수 있는 함수 생성. (switch 문 이용)
6) 기존 다른 스크립트에서 Instantiate, Destroy 함수 모두 변경.
Instantiate는 5)번에서 만든 함수로 변경.
Destroy는 SetActive(false)로 변경.
7) Find 함수 교체.
- 자체적인 게임오브젝트 변수 배열과, 5)번에서 만든 함수이용.
★ 프리펩에는 유니티에서 오브젝트를 할당 시킬 수 없음. (프리펩 끼리는 가능.)
필요하다면 Game Manager를 통하여 2번 끌어오는 방법을 이용해야함.
★ 오브젝트 풀링 최적화 이후 Hit가 안되는 적 비행기 발생.
- 새로 생성된 게 아니라 비활성이기 때문에, 적 비행기의 체력이 0인 상태로 활성화 되기 때문.
Enable(생명주기함수)로 적 체력을 초기화 시켜주면 됨.
'개발자가 되어보자..공부공부 > 개발 일지' 카테고리의 다른 글
C# 유니티 공부 17 - 2D 슈팅 예제(보스 생성, 보스 총알 패턴, 삼각함수 계산.) (0) | 2022.12.17 |
---|---|
C# 유니티 공부 16 - 2D 슈팅 게임 예제. (텍스트파일 불러오기 및 적 비행기 생성 로직 수정) (0) | 2022.12.17 |
C# 유니티 공부 14 - 2D 슈팅 게임 예제. (Prefabs 프리펩, Instantiate함수, Destroy 함수) (0) | 2022.12.15 |
C# 유니티 공부 13 - 탑다운 게임 완성 (메뉴 버튼 UI, 게임 저장과 불러오기, Canvers Scaler, 안드로이드 빌드) (0) | 2022.12.13 |
C# 유니티 공부 12 - 키보드 타자 애니메이션(Typing), UI 대화창, 초상화 애니메이션 (0) | 2022.12.12 |
댓글