
情況是這次程式那邊使用了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
步驟大概是這樣的:
- 删掉Sprite Renderer以及原來的Animation Controller。
- 加入Image和Canvas的Component,随便放一張角色的圖檔,Image是使圖檔可以在Canvas上顯示,Canvas是用來調整順序的。
- 打開Animation編輯器(這時候原來的animation clips已經沒有了),再按照Sprite Animation的流程把所有的動畫加上。搞定w
P.S.原帖說需要把Image中的Preserve Aspect給uncheck掉,不然每個動畫可能會有大小不一的問題(因為Rect Transform的尺寸是不變的),但我覺得如果是Q版角色,動作幅度沒有那麼大的話,木有太大的必要,It Depends。