How to make a digimon-like character evolution?

Hello, I am trying to make a character with a level up system: whenever he gains a new level, his appearance changes in a way, so that he always gets extra things, becomes bigger, unlocks new skills etc. My problem is figuring out how to make transition from one form of character to another look good? The only idea so far how to change the character is to add some particle effect to hide the 3d model, then instantiate a new identical gameObject, just with different 3d model attached to it (let’s say with better looking hat or spiky hands or growing wings, etc…). So in short my question: can I dynamically change one 3d model with another and is replacing the first with the second model the only way?

P.S. Dynamic- I mean like in some for of animation of growth.

The best way I can think of to do something like that is to use Blend Shapes. They can be a little tricky/flaky to get imported, so this is not for the faint of heart. From what I understand it’s also very difficult to get the animation to look right when it’s being applied to two meshes with different shapes. But it will allow you to morph one mesh into another, in any proportion you need (which means, it can be smoothly animated). If you put a Blend Shape animation on a separate layer in the Animator controller, it can do so while other animations are playing. (In fact, you’ll probably have to do this so that your creature can maintain its “evolved” appearance afterwards when animating.)