반응형
스파인 SDK 다운로드
코드 작성
using UnityEngine;
using Spine.Unity;
public class SpineAnimationExample : MonoBehaviour
{
// 스파인 애니메이션 컴포넌트
private SkeletonAnimation skeletonAnimation;
// 애니메이션 이름들
public string walkAnimation = "walk";
public string jumpAnimation = "jump";
public string currentAnimation;
void Start()
{
// GameObject에 연결된 SkeletonAnimation 컴포넌트 가져오기
skeletonAnimation = GetComponent<SkeletonAnimation>();
// SkeletonAnimation이 null이 아닌 경우
if (skeletonAnimation != null)
{
// 초기 애니메이션 설정
PlayAnimation(walkAnimation);
}
else
{
Debug.LogError("SkeletonAnimation 컴포넌트를 찾을 수 없습니다.");
}
}
void Update()
{
// 키보드 입력 예시: 스페이스바를 누르면 점프 애니메이션 재생
if (Input.GetKeyDown(KeyCode.Space))
{
PlayAnimation(jumpAnimation);
}
}
// 애니메이션 재생 함수
void PlayAnimation(string animationName)
{
// 현재 애니메이션이 같은 경우, 다시 재생하지 않음
if (currentAnimation == animationName)
return;
// 애니메이션 재생
skeletonAnimation.AnimationState.SetAnimation(0, animationName, true);
currentAnimation = animationName;
// 애니메이션 이벤트 리스너 등록 예시
skeletonAnimation.AnimationState.Event += HandleAnimationEvent;
}
// 애니메이션 이벤트 핸들러
void HandleAnimationEvent(TrackEntry trackEntry, Spine.Event e)
{
// 예제: 점프 애니메이션에서 이벤트가 발생하면 콘솔에 출력
if (trackEntry.Animation.Name.Equals(jumpAnimation) && e.Data.Name.Equals("footstep"))
{
Debug.Log("Jumping sound or effect could be triggered here!");
}
}
}
반응형