0. 핵심.. Prefabs 사용(프리펩)
- 이미지를 추가 후, 다시 Assets 창으로 옮겨주면 Prefabs 형태로 사용 가능.
- 총알 발사 등, 여러 이미지가 들어가는 경우에 이미지를 직접 삽입할 필요가 없이 효율적으로 사용 가능.
1. 화면 비율 조정.
- 모바일 빌드를 목표로 하였고, Aspect Ratio 9:19 비율로 제일 먼저 조정.
2. 비행기 움직임 및 비행기 애니메이션
3. 비행기 총알 발사
- Instantiate() 함수 이용
Instanitiate(생성되는 오브젝트 종류, 생성되는 오브젝트 위치, 생성되는 오브젝트의 회전)
- 총알이 발사되는 속도는 아래 2가지 변수로 조정.
public float MaxBulletSpeed;
public float CurBulletSpeed;
CurBulletSpeed는 Time.Delttime으로 시간이 실시간으로 움직이도록 하였고, MaxBulletSpeed와 같아질때마다 총알을 새로 발사하도록 하였다.
4. 비행기 상하좌우 이탈 방지 & 화면을 벗어난 총알 데이터 삭제.
- 상하좌우에 비행기 이탈방지용 Border (empty) 생성.
- RigidBody2D, Colider로만 이탈방지를 했을 경우에는 비행기가 나가려는 힘과 맞물려 자연스러운 모습이 연출되지 않음.
(로직으로 해결)
- 총알도 마찬가지로 Border(empty)를 생성.
- 총알은 Border에 충돌하였을 때, Destroy() 함수 실행.
5. 적 비행기 생성, 움직임, 적 총알 발사.
- 비행기 생성되는 시간, 종류를 랜덤으로 설정.
- 비행기 생성되는 시간도 MaxSpawnSpeed와 CurSpawnSpeed로 조정. (플레이어 총알 발사와 원리 동일.)
- 적 비행기 생성은 empty object 생성 후, 배열로 삽입.
- Instantiate() 함수 이용하여 배열로 삽입한 empty object에서 랜덤으로 적이 생성되게 함.
- 적 총알 발사.. 플레이어 비행기 총알 발사와 원리 동일
6. 적 타격 & 플레이어 비행기 피격
- 적 비행기의 체력은 Public 변수로 직접 조정
- 플레이어 비행기 총알도 Public 변수로 직접 조정.
- 이후 아래 로직으로 해결.
- 적 비행기의 체력이 없어져 파괴되었을 때, 스코어를 올리는 로직 포함.
- 플레이어 중복 피격 방지하기 위하여 IsHit라는 bool값 변수 적용.
- 플레이어 비행기 파괴 시, 재생성 되는 로직 포함. (SetActive함수 이용)
- 재생성 되었을 때, 레이어를 이용하여 잠시 무적시간을 갖게 해주는 로직 포함.
- 그 외 플레이어 Life 감소.
7. UI
- 생명 갯수.
- 점수 확인
- 재도전 버튼
★ 애먹은 부분
- 스크립트를 오가며 코딩을 진행하는데, 클래스를 호출하고 초기화 하는 과정에서 애를 많이 먹었음.
일반적으로 상단에서 클래스를 호출하고 Awake 단계에서 초기화를 시켰음.
Public GameManager gamemanager;
public void Awake()
{
gamemanager=getcomponent<GameManager >();
}
하지만 이번에는 prefabs(프리펩)을 사용하면서 프리펩에는 스크립트를 드래그로 집어넣을 수 없음.
그래서 위와 같은 형태가 아닌...아래 형태로 호출 및 초기화 시켰음.
Public GameObject gamemanager;
gamemanager gamemanagerlogic = gamemanager.Getcomponent<gamemanager>();
'개발자가 되어보자..공부공부 > 개발 일지' 카테고리의 다른 글
C# 유니티 공부 16 - 2D 슈팅 게임 예제. (텍스트파일 불러오기 및 적 비행기 생성 로직 수정) (0) | 2022.12.17 |
---|---|
C# 유니티 공부 15 - 2D 슈팅 게임 예제. (아이템 획득 및 사용 로직, ★배경 패럴릭스/스크롤링 기법, ★오브젝트 풀링) (0) | 2022.12.16 |
C# 유니티 공부 13 - 탑다운 게임 완성 (메뉴 버튼 UI, 게임 저장과 불러오기, Canvers Scaler, 안드로이드 빌드) (0) | 2022.12.13 |
C# 유니티 공부 12 - 키보드 타자 애니메이션(Typing), UI 대화창, 초상화 애니메이션 (0) | 2022.12.12 |
C# 유니티 공부 11 - 퀘스트 코딩, 재귀함수, 오버로딩, Dictionary 활용. (0) | 2022.12.11 |
댓글