내일배움캠프 Unity 9기/TIL

[Unity/TIL] - 애니메이션, 트랜지션 추가하기 / GetComponent

song-ssi 2025. 4. 29. 21:24

애니메이션 추가하기

애니메이션을 추가할 오브젝트를 선택 후

window - Animation - Animation 클릭.

 

Create New Clip 클릭해서 애니메이션을 만든다

 

Animator창에 Model 오브젝트에 적용한 flap, die 애니메이션 노드가 뜬다.

 

 

 

트랜지션 추가하기

트랜지션이란 ? 하나의 애니메이션 상태에서 다른 상태로 넘어가는 연결선

flap 우클릭 - Make Transition

화살표가 생긴다.

Parameters - + - int - IsDie 입력

 

flap -> die 트랜지션을

IsDie - Equals - 1로 만든다.

(=> IsDie가 1이 되면 die애니메이션이 실행된다)

 

 

has exit time - Animator

체크 - 애니메이션이 끝날 때까지 기다림

체크 해제 - 즉시 다른 애니메이션으로 전환됨

 

 

V키

V키를 누른 상태로 오브젝트를 드래그하면

자석처럼 달라붙는다.

 

 

 

스프라이트 렌더러 소팅오더

스프라이트의 렌더링 순서를 결정하는 값.

Order in Layer 값이 높을수록 다른 스프라이트보다 앞에 렌더링된다.

 

Sorting Layer와의 관계

스프라이트는 먼저 Sorting Layer를 기준으로 그룹화된 뒤, 해당 그룹 내에서 Sorting Order 값으로 순서를 조정한다.

 

 

 

리지드바디(Rigidbody)

오브젝트에 물리 엔진의 영향을 적용하기 위해 사용되는 컴포넌트.

- 중력 적용

예) 공이 떨어지거나 캐릭터가 바닥으로 내려오는 동작

 

- 힘과 속도

외부에서 힘을 가하거나 속도를 설정하여 오브젝트를 움직일 수 있다.

예) 폭발 효과로 오브젝트가 밀려나는 경우

 

-충돌 처리

예) 캐릭터가 벽에 부딪히거나 적과 충돌하는 동작

 

Rigidbody의 주요 속성

Mass: 오브젝트의 무게를 설정한다.

Drag: 공기 저항을 시뮬레이션하여 속도를 줄인다.

Constraints: 특정 축의 움직임이나 회전을 제한한다.

 

 

GetComponent<타입>

[Player (GameObject)]
├── SpriteRenderer
├── Rigidbody2D
└── Player.cs (내가 만든 스크립트)

여기서 GetComponent<Rigidbody2D>() 를 하면 Rigidbody2D를 꺼내오고,
GetComponent<Player>() 하면 Player.cs 스크립트를 꺼내온다.

 

GetComponentInChildren<타입>

하위 오브젝트의 컴포넌트까지 확인한다.

 

GetComponent로 어떤 값을 가져오는데?

컴포넌트의 인스턴스(주소)를 준다.

(못 찾으면 null이 나옴. null 체크는 꼭 하자)

Rigidbody2D rb = GetComponent<Rigidbody2D>();
  1. 내 오브젝트에 붙어 있는 Rigidbody2D 컴포넌트를 찾는다.
  2. 컴포넌트는 실제로 메모리 어딘가에 저장되어 있음.
  3. 그 위치(주소)를 변수 rb에 저장한다. (참조)
  4. 이제 rb.velocity, rb.AddForce() 등으로 Rigidbody2D 컴포넌트를 조작할 수 있다.