I am making a 2D game with Unity 5.4 and I want to animate my 2D human character.

He has different sprites for its body parts - leg(s), hand(s), head, eye(s), nose, mouth. Its eyes, hands, legs move independently from each other - meaning their animations and transitions are not related in any way.

My question is, which alternative is the better choice performance-wise when animating?

  1. For legs, hands, eyes, etc. create separate Animator and animate them separately.

  2. For all animations use single Animator (attached on body's "container" GameObject) and create for legs | hands | eyes different Layers in the Animator.

  • 1
    \$\begingroup\$ Unity provides a very good profiler. For a practical approach you could compare both alternatives by profiling them. \$\endgroup\$
    – Artery
    Commented Dec 13, 2016 at 15:22

1 Answer 1


I'm not 100% sure with Unity, but in my experience with C++ and lower level stuff, combining them into a single animator should be more efficient than having four of them doing their own thing. The higher level you get, the more "bookkeeping" stuff there tends to be, so having more animators will just waste more processing cycles on stuff the other animators have already done, or will do again.

That being said, I doubt there'd be much difference either way. Unity's pretty decent on performance, especially for 2D games. I wouldn't worry too much about framerate until it's done, and if it runs acceptably and it's easy to maintain, then score! If not, it's easier to profile and find what's slowing you down.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .