2024/02/21

안석환·2024년 2월 21일

🧐기본 공부 내용


  1. RuntimeOverrideController
  • 애니메이션이 상황에 따라 다르게 동작해야할때 기존 애니메이터를 기반으로 다르게 구동 시키는 컨트롤러이다


💾 코드

    protected override void Awake()
    {
        base.Awake();
        _controller = GetComponent<InstallationController>();
        _animatorController = new AnimatorOverrideController(animator.runtimeAnimatorController);
        animator.runtimeAnimatorController = _animatorController;
    }

    public void AddAnimation(AnimationClip anim, InstallationAnimType type)
    {
        _animatorController[type.ToString()] = anim;
        // _animatorController.layers[0].stateMachine.states[(int)type + 1].state.motion = anim;
    }

📖 참고

참고할 코드 내용




⛔️ 에러


  1. 문제: 설치물들 사이에 같은 애니메이터를 쓰고 같은 상황에 다른 애니메이션을 재생시켜야 하는데 같은 애니메이션을 재생시키는 문제가 발생했다.
  • 시도: 애니메이션의 스테이트의 애니메이션 클립을 직접수정

  • 해결: 애니메이터 컨트롤러를 관여하여 수정해서 모든 설치물들이 같은 애니메이터를 수정하여 문제발생

  • 알게된것: 애니메이터의 스테이트의 클립을 수정할 시 애니메이터 컨트롤러에 직접 영향을 준다

  • 시도: 런타임오버라이트컨트롤러를 새로만들어서 애니메이션 컨트롤러에 씌우기

  • 해결: 기존 컨트롤러에 영향이 없는걸 확인

  • 알게된것: 애니메이션이 같은 상황에 다른동작을 해야할 때 사용하자


💾 코드

코드내용




💭 느낀점


  1. 느낀점
  • 느낀 것에 대한 내용 or 피드백
profile
안석환!

0개의 댓글