상세 컨텐츠

본문 제목

유니티 애니메이터 레이어 적용하기

카테고리 없음

by MJ_119 2024. 8. 9. 00:33

본문

animator.SetLayerWeight(1, 1);

animator.SetLayerWeight(int layerIndex, float weight) 함수

  • layerIndex: 가중치를 설정하려는 애니메이터 레이어의 인덱스입니다. 레이어는 0부터 시작하며, 인덱스는 애니메이터의 레이어 창에서 순서대로 결정됩니다.
  • weight: 해당 레이어의 가중치로, 0에서 1 사이의 값을 가집니다.
    • 0: 해당 레이어의 애니메이션이 전혀 적용되지 않습니다.
    • 1: 해당 레이어의 애니메이션이 완전히 적용됩니다.
    • 0과 1 사이: 레이어의 애니메이션이 부분적으로 적용됩니다.

 

@ 사용 예시

using UnityEngine;

public class CharacterAnimationController : MonoBehaviour
{
    private Animator animator;

    void Start()
    {
        animator = GetComponent<Animator>();

        // 처음에는 상체 애니메이션을 사용하지 않도록 상체 레이어의 가중치를 0으로 설정
        animator.SetLayerWeight(1, 0f); // "UpperBody Layer"의 인덱스가 1이라고 가정
    }

    void Update()
    {
        // 왼쪽 마우스 버튼을 누르면 상체 애니메이션 레이어 가중치를 1로 설정 (상체 애니메이션 적용)
        if (Input.GetMouseButtonDown(0))
        {
            animator.SetLayerWeight(1, 1f); // 상체 레이어의 가중치를 1로 설정
            animator.SetTrigger("Shoot"); // 발사 애니메이션 재생
        }

        // 마우스 버튼을 떼면 상체 애니메이션 레이어 가중치를 다시 0으로 설정 (상체 애니메이션 미적용)
        if (Input.GetMouseButtonUp(0))
        {
            animator.SetLayerWeight(1, 0f); // 상체 레이어의 가중치를 0으로 설정
        }
    }
}