用Unity做水波效果


遇到了需要做動態水波效果的需求,類似下圖

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

 

 參考資料:

  1. https://docs.coronalabs.com/guide/media/spriteAnimation/index.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM