天天看点

sprite的大小 unity_【笔记】Unity中Sprite Animation到Image.Sprite的转换

sprite的大小 unity_【笔记】Unity中Sprite Animation到Image.Sprite的转换

情况是这次程序那边使用了Screen Space - Overlay的Canvas Render Mode,所有的Assets(包括game objects)都在Canvas上。

理论上Canvas一般是摆放UI素材的,所以一直做sprite animation的我有点懵圈——因为Canvas只能渲染Image,和Sprite Renderer不兼容。殊不知在论坛里发现了一个很邪门的办法:用Sprite.Image做动画(↓原链接↓)

https://forum.unity.com/threads/animating-sprites-in-a-canvas.281426/​forum.unity.com

步骤大概是这样的:

  1. 删掉Sprite Renderer以及原来的Animation Controller。
  2. 加入Image和Canvas的Component,随便放一张角色的图片,Image是使图片可以在Canvas上显示,Canvas是用来调整顺序的。
  3. 打开Animation编辑器(这时候原来的animation clips已经没有了),再按照Sprite Animation的流程把所有的动画加上。搞定w

P.S.原帖说需要把Image中的Preserve Aspect给uncheck掉,不然每个动画可能会有大小不一的问题(因为Rect Transform的尺寸是不变的),但我觉得如果是Q版角色,动作幅度没有那么大的话,木有太大的必要,It Depends。