Unity/Tips

Unity 애니메이션은 코드 없이 CrossFade

최애뎡 2022. 2. 13. 16:59
728x90
반응형

귀찮게 Parameters를 하나하나 만들고 애니를 하나하나 연결하지 않고 오직 코드만으로도 자연스럽게!

 

먼저 

https://docs.unity3d.com/2021.2/Documentation/ScriptReference/Animation.CrossFade.html

 

Unity - Scripting API: Animation.CrossFade

If mode is PlayMode.StopSameLayer, animations in the same layer as animation will be faded out while animation is faded in. if mode is PlayMode.StopAll, all animations will be faded out while animation is faded in. If the animation is not set to be looping

docs.unity3d.com

doc내용 당연히 보고 

내용도 크게 어려울 게 없고 실행하고자 하는 Ani + Blending(ani의 fade in, out) 시간 정도만 해주면 끝

 

            switch (_plyState)
            {
                case PlayerState.Run:
                    _playerAni.CrossFade("Run", 0.5f);
                    break;
                case PlayerState.Attack:
                    _playerAni.CrossFade("Attack", 0.1f);
                    break;
            }

본인의 경우 사실상 ani를 별로 안 쓰고 있긴 한데 음... 이게 생각보다 이렇게 쓰니까 확실히 Parameters설정에 대한 실수라던지 복잡하게 뭘 봐야 하는 선 막 긋고 이럴 필요가 없는 게 너무 좋음 심지어 blending도 생각보다 더 부드럽게 되고 오히려 나중에 ani가 많아지면 많아질수록 더 관리하기 편할 것임

 

[ * 근데 3번째 매개변수에서 플레이 모드를 StopSameLayer로 해주면 각 애니를 굳이 Loop설정을 하지 않아도 Loop가 돼야 하는데 잘 안 되는 것 같음 걍 Ani를 미리 Loop 설정하고 하는 게 편한 느낌.... ]

반응형