先上效果
常规思路
用sprite作为animation clip的关键帧,LateUpdate里直接使用SpriteRenderer.sprite.name来查表替换sprite。
改进思路
UnityEngine.Object.name每次调用都会分配一个新的字符串,在update里调用,压力较大。
- 每组图片,根据每张图片的名称hash,作为animation的一组key。
- SpritePack保存hash数组,以及对应的图片数组。
- PaperdollPart根据animation的key索引出图片,在LateUpdate里替换SpriteRenderer.sprite。
思考
Q. unity为什么用float作为animation clip的keyframe,而不是用int?
参考
Unity Animation2D package