遇到了需要做動態水波效果的需求,類似下圖
1. 最簡單最naive的是只用一張水波圖
- 將這個圖片掛在一個有mask組件的父節點上,這個父節點可以掛一個圓形的圖當做遮罩。注意這個水波圖的寬度一定要比圓形的直徑長。
- 用代碼控制水波圖的左右移動,來做水流波動的效果,進度條的位置通過調整其y軸的大小。
- 這種方法很容易實現,但明顯的缺點是無法很好的調整水波的狀態,可能達不到想要的效果
最終效果:
2. 用動畫幀做水波效果
- 用一張包含多個sprite的圖片做動畫(隨便拿了個圖),將Texture type 設成Sprite (2D and UI), sprite mode設為multiple
- 打開sprite editor,選取單個sprite所取的大小,生成多個圖片序列
- 選取圖片序列,拖拽到animation中, 調整位置得到想要的動畫效果。
- 和第一個方法一樣也是掛在一個有mask組件的父節點上當做遮罩,進度條的位置通過調整其y軸的大小。
最終效果:
3. 用UV動畫,在shader里操作。具體可參考:https://gameinstitute.qq.com/community/detail/123918
參考資料:
- https://docs.coronalabs.com/guide/media/spriteAnimation/index.html