[17:43 ~ 21:20] 하늘에서 내려오는 구급 상자와 폭탄 상자를 만드는 방법을 봅니다.
두가지 아이템은 상자와 낙하산 두가지요소로 구성되어 있습니다.
두가지요소는 하나의 빈 오브젝트의 하위요소로 집어넣어서
같이 애니메이트 시킬수 있습니다
낙하산 모양의 중심위치에 빈오브젝트를 위치시켜줍니다.
상자에는 트리거와 BombPickup 스크립트 Bomb 스크립트가 있는데
BombPuckup에서는 캐릭터가 폭탄을 획득할때의 기능을 수행하고
Bomb은 폭탄을 사용하거나 폭발햇을시에 사용하는 기능이 들어있습니다.
Physics2D.OverlapCircleAll을 사용하여 일정 범위내의 적을 수집하는 코드가
들어있습니다.
9. 스코어
[21:22 ~ 22:20] 스코어는 [점수 애니메이션과 UI] 두가지로 구성 되어 있습니다.
점수 애니메이션은 0과 1의 두가지 스프라이트로 되어있고
애니메이션 재생이 끝나면 Destory되는 간단한 구조입니다.
UI는 GUIText로 구성되어 있고 Score 스크립트로
점수를 바꿔주는 간단한 방식입니다.
10. Enemy
[22:21 ~ 25:54] 적은 2종류가 있습니다.
같은형태의 스크립트를 공유하지만 인스펙터에서 체력과 이동스피드를
조절 바꿔 줄수 있습니다.
우주선을 탄 적과 우주선을 타지않은 적이있는데
우주선을 타지 않은 적은 [꼬리,눈꺼플,눈] 을 개별 스프라이트로 적용해주어서
애니메이션을 표현할수있습니다.
우주선을 탄적은 앞뒤로 움직이게하는 간단한 애니메이션표현으로 가능합니다.
벽을 감지하여 반대쪽으로 회전해서 진행하게 하기위해
Physics2D.OverlapPointAll 함수로 이를 감지하여 캐릭터 회전을 해줍니다.
또한 로켓이 적에게 닿을경우 로켓오브젝트에서는 Enemy 오브젝트의
Hurt()를 호출하여 이함수는 적의 체력에서 1을 감소시키게합니다
적의 체력이 0이되면 Death() 함수를 호출합니다 Death 함수에서는
모든 Sprite Renderer를 비활성화 합니다.이는 각 개체로 이루어진 Renderer를
단일 Sprite로 대체하기 위함입니다.
적이 죽을때는 rigidbody2D.AddTorque를 사용하여 회전하는 시각적 효과를 줍니다.
적을 사라지게 하는건 KillTrigger에서 플레이어캐릭터와 동일하게 처리합니다.
물에빠질때 물이 튀기는 Sprite를 생성하고 생성될때 오디오 클립이 실행되게 합니다.
11. 배경에 몇가지 움직이는 요소 추가하기
[25:55 ~ 27:59] 배경에 날아다니는 백조와 강둑을 통해 달리는 버스와 택시를 만들어 봅니다
백조부터 시작합니다
포토샾에서 애니메이션 각각 프레임에 해당하는 이미지를 그려서
Multiple Sprite Mode 가져오기 설정을 사용하여 가져온
스프라이트를 모두 드래그하여 씬에 넣기만 하면
유니티가 알아서 애니메이션 작업을 진행합니다
그리고 백조에 rigidbody2D를 넣어서 일정하게 이동이 가능하게 합니다.
버스와 택시의 경우엔 Sprite Importer를 통해 분리하고 간단히 흔들리는
애니메이션을 적용합니다. 여기에도 rididbody2D를 넣어서 일정하게 이동시킵니다.
만들어진 3개의 요소를 프리팹으로 만들고
3개의 Creator 오브젝트를 생성하기위한 오브젝트를 만들고
Background Prop Spawner 스크립트를 넣어주고 여러값을 넣어서 나오는위치등의
설정을 해줍니다. (어떤 프리펩을 생성할것인기 어떤속성을 줄것인지)
배경에 구름도 2개 추가했는데 이 두개의 구름은 상위 빈오브젝트 아래에 있고
느리게 움직이는 애니메이션을 집어넣어서 천천히 움직이게 합니다
이 애니메이션은 루프기능으로 무한 반복되게 설정해줍니다.