[ Sprite Renderer 를 이용한 스프라이트 애니메이션 ] - Scene02
백조(Swan)가 날아가는 애니메이션 구현
Assets/Sprites/_Props/swan_Sheet.png 복사해 오기
swan_Sheet의 Inspector View
Texture Type : Sprite
Sprite Mode : Multiple ( Sprite Editor가 활성화 됨)
Packing Tag : None
Pixels To Units : 40
Slice : Click
Type : Automatic
Maximum Size : 4
Pivot : Center
Method : Delete Existing
Slice : Click
Filter Mode : Bilinear
Default
Max Size : 1024
Format :Compressed
swan_Sheet_0을 Hierarchy View로 가져오기
Menu : Window >> Animation
Menu : Create New Clip
Name: (Assets/Animation 폴더에) SwanFly 생성
SwanFly.Anim은 Clip 폴더로 이동
SwanFly.controller는 Controller 폴더로 이동
Menu : Add Curve >> Sprite Render >> Sprite
나머지 조각의 스프라이트 이미지들을 끌기로 넣고 간격 조절
Sample 값으로 속도 조절도 가능
스프라이트 이미지는 좌/우 중에 하나만 있으면 된다. (나중 설명)
Position에 따른 애니메이션을 추가로도 할 수 있음
Menu : Add Curve >> Transform >> Position
Position.y를 처음 값(0)으로 하고 스프라이트 이미지의 중간 값(1)로 설정
[ Scripts 1 ]
Start / Update
[ 실습 ] Console 창에 Start/Update가 실행될 때마다 Console 창에 메시지를 출력할 수 있도록 함
Cube 생성
Script 생성
Start : "Start ... " 출력될 수 있도록
Update : "Update 1" ~ "Update 100" 까지 출력될 수 있도록
[ Script를 이용하여 백조(Swan)의 움직임 처리하기 ] - Parallax Scrolling
기존 Swan의 Position 애니메이션의 세팅 값을 지워야 함
Swan의 애니메이션에서 Position의 값을 움직이고 있기 때문에 Script의 코딩으로 영향을 줄 수가 없기 때문
Assets/Scripts 폴더 생성하기
Scripts 폴더에 Script 생성 (SwanTest.cs)
rigidbody2D.velocity를 이용하면 물체에 힘을 가한 듯이 일정 속도의 움직임을 제어할 수 있음
그리고 반드시 rigidbody2D Component를 추가해야 함
Menu : Component >> Physics 2D >> Rigidbody 2D
<Source> SwanTest01.cs
참고 : GetComponet 참조
SwanTest.cs를 swanSheet Object에 연결
Time.deltaTime을 이용하여 일정한 속도로 움직이게 하기(rigidbody2D.velocity를 사용하면 deltaTime을 이용할 필요 없음)
<Source> SwanTest02.cs
[ Random하게 백조(Swan) 생성하기 ]
swanCreator(GameObject)를 생성
Menu : GameObject >> Create Empty
swanCreater로 이름 바꾸기
BackgroundPropSpawner.cs 생성
<Source> BackgroundPropSpawner01.cs
BackgroundPropSpawner.cs를 swanCreator에 붙이기
SwanSheet의 SwanTest.cs를 삭제한다.
BackgroundPropSpawner를 이용하여 rigidbody2D.velocity에 값을 넣고 있기 때문에 SwanTest.cs가 필요 없음
[ Instantiate & Destroy ]
Instantiate : 프리팹(Prefab)에 있는 객체를 생성하는 함수
Destroy : 만든 GameObject를 파괴하는 함수(Hierarchy View에서 사라짐)
동적으로 swanSheet을 생성하고 삭제하기
swanSheet를 prefab으로 만듬
Hierarchy View에 있는 swanSheet는 삭제
swanCreator >> BackgroundPropSpawner >> propInstance에 prefab으로 만든 swanSheet를 연결
<Source> BackgroudPropSpawner02.cs
Random 위치로 swanSheet를 생성하고 삭제하기
오른쪽에서 생성되어 왼쪽으로도 날아갈 수 있도록 하고 있음
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
<Source> BackgroudPropSpawner03.cs
[ 안개(Fog) 생성하기 ] - 과제