backgroundAnimation(GameObject) 업그레이드
swanCreator에서의 Coroutine 활용
Update()함수를 사용하지 않고서 swan을 움직이게 하고 있음
BackgroundPropSpawner의 public 변수 세팅
Left Spawn Pos X : -24
Right Spawn Pos X : 24
Min Spawn Pos Y : 4
Max Spawn Pos Y : 8
Min Speed : 5
Max Speed : 8
Min Time Between Spawns : 2
Max Time Between Spawns : 8
Min/MaxTimeBetweenSpawans를 1로 세팅해서 테스트해 볼 것
<Source> BackgroundPropSpawner04.cs
[ busCreator / cabCreator ]
Bus/Cab Prefab 만들기
Assets/Sprites/_Props/Bus.png와 Cab.png 복사해 오기
Bus/Cab의 Inspector View
Texture Type : Sprite
Sprite Mode : Multiple
Sprite Editor
Type : Automatic
Maximum Size : 4
Pivot : Center
Method : Delete Existing
Slice : Click
바퀴 마다 스프라이트를 생성하지 말고 하나의 스프라이드로 처리할 수 있도록 변경
Packing Tag : None
Pixels To Units : 100
Filter Mode : Bilinear
Bus/Cab를 Hierarchy View로 가져오기
Bus/Cab의 자동차 이미지 스프라이트만을 가지고 옮(GameObject를 만듬)
Bus/Cab의 바퀴 이미지 스프라이트를 위에서 생성된 GameObject 하위로 가지고 옮(계층적 GameObject 구성)
Sprite Renderer(Component)의 Sorting Layer를 모두 "Background"로 설정
Bus/Cab의 Animation 추가
Menu : Window >> Animation
[주의 사항] Animation을 만들고자하는 GameObject(Bus/Cab)를 선택한 이후의 Animation View
Menu : Create New Clip
Name: (Assets/Animation/Clip 폴더에) Bus.anim/Cab.anim 생성
Menu : Add Curve >> Transform >> Rotation
Rotation 조절
Menu : Add Curve >> Bus/Cab의 하위 Object >> Transform >> Position
Position 조절
자동 생성된 Animator Component 세팅
Apply Root Motion : Uncheck
Animate Physics : Check
Culling Mode : Based On Renderers
Bus/Cab에 Rigidbody2D 추가
Prefab으로 만들기
backgroundAnimation 밑에 cabCreator/busCreator라는 empty Object 생성
swanCreator에서 사용했던 BackgroundPropSpawner.cs를 Component로 추가
Cab / Bus 를 위한 BackgroundPropSpawner.cs의 public 변수 값 세팅
Background Prop : Cab(prefab) / Bus(prefab)
Left Spawn Pos X : -24
Right Spawn Pos X : 24
Min Spawn Pos Y :-6.4(Cab) / -5.5(Bus)
Max Spawn Pos Y : -6.4(Cab) / -5.5(Bus)
Min Speed : 5
Max Speed : 8
Min Time Between Spawns : 10
Max Time Between Spawns : 15
[ Enemy2 ]
Enemy2에 사용되는 이미지 구성하기
Assets/Sprites/_Character/char_enemy_alienShip.png & char_enemy_alienShip-dead.png & char_enemy_alienShip-damaged.png복사
Sprite Inspecter View (damage, dead 이미지 같은 설정임)
Texture : Sprite
Sprite Mode : Single
Packing Tag : character
Pixels To Units : 100
Pivot : Center
Filter Mode : Bilinear
Enemy2 GameObject 생성
Empty Object를 만든 이후 Enemy2 이라고 이름을 바꿈
Enemy2 밑에 char_enemy_alienShip.png를 붙임
이름을 body로 바꿈
Sprite Renderer>> Sorting Layer : Character로 설정
Rigidbody 2D 추가
Fixed Angle : Check
Interpolate : Interpolate
Circle Collider 2D 추가
Radius / Center 조정
Tag : Enemy / Layer : Enemies
Enemies라는 Layer를 만들고 Enemy1도 적용함
Animation 추가
Animation View >> Create New Clip
Name : Enemy2wobble
Add Curve >> Transform >> rotation
자동 추가된 Animator
Apply Root Motion : Uncheck
Animate Physics : Check
Culling Mode : Based On Renderers
frontCheck 추가하기
Enemy1에서 추가했던 것처럼 "frontCheck" 게임 오브젝트를 만들어 추가
Enemy Script 추가
Enemy1과 Enemy2를 위해 공통으로 사용되는 스크립트
Play 테스트
Enemy Dead 및 Damage 처리
<Source> Enemy03.cs
Enemy1의 하단에 있는 enemy1-body(GameObject)를 body로 이름 변경해야 함
Enemy의 상태에 따라 Enemy의 "Sprite"이미지를 교체하여 표현하고 있음
Enemy.cs의 public 변수 ( Enemy1 / Enemy2 )
Dead Enemy : char_enemy_alienSlug-dead(Enemy1) / char_enemy_alienShip-dead(Enemy2)
Damaged Enemy : None(Enemy1) / char_enemy_alienShip-damaged(Enemy2)
Hurt 처리
<Source> Rocket04.cs
Rocket이 Enemy와 충돌 했을 때, Enemy.cs의 Hurt 함수 호출
죽을 때 캐릭터 머리 위에 Score 표시 처리
100 UI 만들기
Assets/Sprites/UI/numeric-0 & numeric-1 복사
ui_100points라는 Empty Object 생성
ui_100points에 numeric-0 & muneric-1을 하위 Object로 만듬 (0은 두개)
Sprite Renderer
Sorting Layer : UI
Tag & Layer Management에서 UI라는 Sorting Layer 추가
Script 추가
이미 만들어 놓은 Destoryer.cs를 추가
Animation 추가
Animation View >> Create New Clip
Name : 100points
Add Curve >> Transform >> 하위 오브젝트(num) 3개를 모두 조정
마지막 프레임에서 Event 추가
Destroyer.cs의 DestroyObject() 호출
Prefab으로 만들기
Enemy.cs 처리
<Source> Enemy04.cs
Enemy1과 Enmey2의 Enemy.cs의 public 변수
Hundred Points UI : ui_100points(prefab) 연결
Enemy.cs 나머지 처리
죽을 때 기울어진 상태로 화면밖으로 떨어지는 효과 처리
죽을 때 Sound 효과내기 ( Enemy1, Enemy2)
Enemy.cs의 public 변수 Death Clips
Size : 3 세팅하면 Element 0, 1, 2가 생김
Element0,1,2에 ememy-death1,2,3을 연결
Assets/Audio/Enemy/enemy-death1 & enemy-death2 & enemy-death3 복사
<Source>Enemy05.cs
Enemy2 Prefab 만들기