카테고리 없음
유니티 애니메이터 레이어 적용하기
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으로 설정
}
}
}