상세 컨텐츠

본문 제목

[유니티 소소모임] 3주차. 유니티 에디터 배우기 2 (Editor : Ijin)

24-25/Untiy

by 롱롱😋 2024. 11. 8. 10:03

본문

728x90

 

중력 적용

 플레이어 오브젝트에 중력을 적용하려면 우선 중력값을 부여할 변수를 생성해야 한다. 이때 중력은 아래 방향으로 작용하므로 변수 값을 음수로 설정해야 한다.

[SerializeField]
private float gravity = -9.81f;

+) SerializeField: 일반적으로 private으로 정의된 변수는 유니티 인스펙터에 보이지 않는다. 하지만 [SerializeField]를 사용하게 되면 인스펙터에서 설정할 수 있고, 개발자가 쉽게 변수의 값을 수정할 수 있게 된다. 

 private void Update()
 {
     if (characterController.isGrounded == false)
     {
         moveDirection.y += gravity * Time.deltaTime;
     }
 }

 

 변수를 생성했으면, CharacterController의 속성 isGrounded를 활용한다.  이는 오브젝트가 지면에 닿아있는지를 나타내는 속성으로, true이면 오브젝트가 지면에 있고, false이면 공중에 떠 있는 상태이다.

 즉, 오브젝트가 공중에 떠 있을 경우, 지면에 닿을때가지 gravity * Time.deltaTime 값만큼 오브젝트의 y 값을 감소시키게 된다. Time.deltaTime을 곱해주는 이유는 한 번에 오브젝트를 떨구기 보다는 프레임 간 시간 간격마다 자연스럽게 땅에 떨어질 수 있도록 속도를 조절하기 위해서이다.

public void MoveTo(Vector3 direction)
{
    moveDirection = new Vector3(direction.x, moveDirection.y, direction.z);
}

 

 새로운 vector3 객체를 생성하여 direction 벡터 x값, 현재 moveDirection의 y값, 매개변수로 전달된 direction 벡터의 z값을 가져오게 된다. 위와 같은 코드로 중력이 적용되고 있을 때 y축 값이 direction에 의해 바뀌지 않도록 설정을 해주어야 한다.

 

애니메이션 Blend Tree

 애니메이터 창에서 우클릭 후 new blend tree를 클릭하여 생성할 수 있다.

 블렌드 트리는 여러 애니메이션 동작을 혼합하여 자연스러운 전환을 할 수 있게 도와준다. 애니메이션의 파라미터에 따라 애니메이션을 조정할 수도 있으며 오브젝트가 여러 동작을 수행할 대 블렌드 트리를 활용하여 더 다양한 모션을 제작할 수 있다. 주로 캐릭터(오브젝트)가 이동할 때의 애니메이션을 블렌드하거나 특정 상태(공격, 방어)일 때의 애니메이션을 블렌드 트리로 부드럽게 전환할 수 있다.

 

 블렌드 트리는 일반적으로 1D, 2D 옵션 중에서 선택할 수 있다. 

 -1D: 하나의 파라미터를 사용해서 애니메이션을 혼합하며 주로 걷기 뛰기 등을 결합한다.

- 2D: 두 개의 파라미터를 사용해서 애니메이션을 혼합하며, 다른 방향 또는 같은 방향의 애니메이션을 결합한다.

+) Direct 모드: 블렌드 트리 내에서 애니메이션을 직접적으로 재생하는 방식. 혼합하기 보다는, 특정 애니메이션(얼굴 표정 및 대기 상태) 등에 사용한다.

 위 그림은 인스펙터 창에 나타난 블렌드 트리로, 애니메이션의 현재 상태와 그에 따른 모션의 위치를 보여준다. 원 부분은 현재 선택된 모션의 위치를 나타내고, 마름모는 다른 모션의 위치를 나타낸다. 

 만일 선택된 자식 모션에 애니메이션을 할당하지 않으면, 파라미터 밑에 "the selected child has no Motion assigned"라는 경고문이 뜬다.


해당 포스트는 고박사, [ 따라하면서 배우는 고박사의 유니티 기초[유니티 2D 기초 (Unity 3D Basic)] ], (2020, 07월 06일) 인프런 강의를 참고하여 작성하였습니다.

 

 

 

Corner Unity

Editor : IJin

 

728x90

관련글 더보기