혼자 해보려 했는데 잘 안댐
그래도 나머지는 거의 다 짜서 이거만 하면 ㄹㅇ 끝나는데...
[Header("Player Animators")]
public Animator[] playerAnimators; // 각 플레이어 캐릭터의 Animator
[Header("Player Sprites")]
public GameObject[] playerObjects; // 각 캐릭터를 나타낼 GameObject
private void SetupPlayerAnimators()
{
playerAnimators = new Animator[playerObjects.Length]; // playerObjects는 2D 오브젝트 배열
for (int i = 0; i < playerAnimators.Length; i++)
{
if (i < playerCharacters.Count && playerCharacters[i] != null)
{
Animator animator = playerObjects[i].GetComponent<Animator>();
playerAnimators[i] = animator;
if (animator != null)
{
animator.runtimeAnimatorController = CreateRuntimeAnimatorController(playerCharacters[i]);
animator.Play("Idle");
}
}
}
}
private RuntimeAnimatorController CreateRuntimeAnimatorController(CharacterData character)
{
AnimatorOverrideController animatorOverride = new AnimatorOverrideController();
animatorOverride.runtimeAnimatorController = Resources.Load<RuntimeAnimatorController>("BaseAnimatorController");
animatorOverride["Idle"] = character.idleAnimation;
animatorOverride["Skill1"] = character.skill1Animation;
animatorOverride["Skill2"] = character.skill2Animation;
animatorOverride["Skill3"] = character.skill3Animation;
return animatorOverride;
}
public void PlayCharacterAnimation(int characterIndex, string animationName)
{
if (characterIndex >= 0 && characterIndex < playerAnimators.Length)
{
Animator animator = playerAnimators[characterIndex];
if (animator != null)
{
animator.Play(animationName);
StartCoroutine(ResetToIdle(animator, characterIndex));
}
}
}
이 2d 오브젝트에 2d 애니메이션을 불러오고싶음
(베이스 애니메이션 컨트롤러에는 캐릭터 대기모션, 스킬 1, 스킬 2, 스킬 3이 레이어로 만들어져있고 트렌지션은 코드로 불러오니까 따로 설정 안함)
대충 2d 오브젝트 설정은 이렇게함
인터넷 강의에서 적힌 글 보고 따라해봤는데 왜 실행했을때 애니메이션이 안 불러와지는지 모르겠음
고수들 눈에는 되게 쉬운 문제일텐데 이렇게 불러오는거 처음해보는 사람이라 계속 헤메는중...
+ 캐릭터 데이터 부분
[Header("Character Animations")]
public AnimationClip idleAnimation;
public AnimationClip skill1Animation;
public AnimationClip skill2Animation;
public AnimationClip skill3Animation;
애니메이션 클립이 아니라 애니메이션 컨트롤러면 동작 안하는거 맞음. 런타임에서 애니메이터 갈아끼우기는 안됨
캐릭터 데이터 부분 추가햇음 선택된 캐릭터의 데이터를 받아서 2d 오브젝트에 입히려 했는데 저렇게 굴리면 안굴러감?