[ 이미지 출력하기 2 ]
흐르는 이미지 표현하기( 배경 스크롤 )
Empty Object 생성
Menu : GameObject >> Create Empty
GameObject 이름을 mainBG로 바꾸기
bg01(GameObject)를 mainBG 밑에 연결하기
Hierarchy 창에서 드래그 하여 넣으면 됨
Project창에 있는 bg01을 Hierarchy의 mainBG 로 한번 더 옮기기(혹은 Hierarchy 창에 있는 bg01을 카피함)
mainBG 오브젝트 밑에 두개의 bg01가 있어야 함
하나는 position.y를 20으로 하나는 position.y를 0으로 세팅
mainBG에 애니메이션 넣기
우선 Assets 폴더에 다음과 같이 폴더를 만듬
Assets >> Animation
Animation View 열기
Menu : Window >> Animation
mainBG 오브젝트가 선택된 상태에서 "New Anim" 생성
Name : BackgroundAnim
Background 오브젝트에서 Animator Component가 생성된 것 확인
Controller : BackgroundAnim(.controller)
Avatar : None
Apply Root Motion : Check
Animate Physics : Non Check
Culling Mode : Based On Renderers
Animation 만들기
Animation View에서
Menu : Add Curve >> Transform >> Position
Position.y를 처음 값(0)과 끝 값(20)을 설정
10초 정도로 순환되도록 하고 있음
Prefab 만들기
Select / Revert / Apply 설명
Select : 선택된 프리팹의 위치를 표시함
Revert : Hierarchy에 있는 프리팹을 원래의 프리팹 정보로 되돌림
Apply : 현재의 내용을 원본 프리팹에 적용함.
Assets에 Prefab/Environment 폴더 만들기
mainBG를 Environment 폴더로 끌고 내려 오기
Clear Flags : Skybox
Backgroud : 특정 색깔
Culling Mask : Everything
Projection : Orthographic
Size : 7.5
[ Rotation을 이용한 애니메이션 ]
소행성(Astroid)이 날아가는 애니메이션 구현
Assets/Sprites/Characters/asteroid01.png 복사해 오기
asteroid01의 Inspector View
asteroid01을 Hierarchy View로 가져오기
Menu : Window >> Animation
Menu : Create New Clip
Name: (Assets/Animation 폴더에) asteroid01Anim 생성
asteroid 오브젝트에 Animator가 생성된 것이 보임
Menu : Add Curve >> Transform >> Rotation
[ Sprite Renderer 를 이용한 스프라이트 애니메이션 ]
비행선(Enemy01)이 날아가는 애니메이션 구현
Assets/Sprites/Characters/Enemy01.png 복사해 오기
Enemy01의 Inspector View
Slice : Click
Type : Grid
Pixel Size : 60 / 60
Offset : 0 / 0
Padding : 0 / 0
Pivot : Center
Enemy01_0을 Hierarchy View로 가져오기
Menu : Window >> Animation
Menu : Create New Clip
Name: (Assets/Animation 폴더에) Enemy01Anim 생성
Enemy01 오브젝트에 Animator가 생성된 것이 보임
Menu : Add Curve >> Sprite Render >> Sprite
Project View에서 나머지 스프라이트 조각 이미지들을 끌기로 Animation View에 넣고 간격 조절
Sample 값으로 속도 조절도 가능
Enemy01 및 Asteroid01의 Animator Component 확인
Controller : Enemy01(Asteroid01)Anim
Avatar : None
Apply Root Motion : None
Animation Physics :
Culling Mode : Based On Renderers
[ Scripts 1 ]
Start / Update
[ 실습 ] Console 창에 Start/Update가 실행될 때마다 Console 창에 메시지를 출력할 수 있도록 함
Cube 생성
Script 생성
Start : "Start ... " 출력될 수 있도록
Update 프레임 마다: "Update 1" ~ "Update 100" 까지 출력될 수 있도록
[ Script를 이용하여 비행선(Enemy01) 및 소행성(Asteroid01)의 움직임 처리하기 ] - Parallax Scrolling
Assets/Scripts 폴더 생성하기
Scripts 폴더에 Script 생성 (LineMove.cs)
rigidbody2D.velocity를 이용하면 물체에 힘을 가한 듯이 일정 속도의 움직임을 제어할 수 있음
그리고 반드시 rigidbody2D Component를 추가해야 함
Menu : Component >> Physics 2D >> Rigidbody 2D
참고 : Gravity Scale 를 디폴트 값을 1 인형태로 진행하면 중력 가속도의 영향을 받아 시간이 지날 수록 빨라짐
이런 경우를 배제하기 위해서는 0으로 세팅
<Source> LineMove01.cs => [공통] Part02 Source
LineMove.cs를 Enemy01 및 Asteroid01 Object에 연결
speed 값의 조절에 따라 속도가 바뀌는 것을 확인
LineMove.cs를 Enemy01 및 Asteroid01 Object에 연결
참고 : Time.deltaTime을 이용하여 일정한 속도로 움직이게 하기(rigidbody2D.velocity를 사용하면 deltaTime을 이용할 필요 없음)
<Source> LineMove02.cs => [공통] Part02 Source