使用Unity實現動態2D水效果
阿新 • • 發佈:2019-01-18
http://forum.china.unity3d.com/thread-16044-1-1.html
在這片教程裡面我們將會用簡單的物理效果來模擬動態的2D水效果。我們將會使用Line Renderer,Mesh Renderer,觸發器(Trigger)和粒子來創造這個水效果。最終的的效果將會包含波浪和水花濺起的特效,你可以直接加入自己的遊戲中。你可以在文章的結尾下載此工程。當然,本文中使用的製作原理可以應用於任何遊戲引擎之中。
最終效果
本教程要實現的最終效果如下:
設定水管理器
第一步就是使用Unity的線段渲染器(Line Renderer)和一些節點來實現水浪的形狀。如下圖:
然後還要跟蹤所有節點的位置、速度及加速度。這些資訊使用陣列來儲存,在類的最上面新增以下程式碼:
[C#] 純文字檢視 複製程式碼 ?
float []
xpositions;
float []
ypositions;
float []
velocities;
float []
accelerations;
LineRenderer
Body;
|
[C#] 純文字檢視 複製程式碼 ?
GameObject[]
meshobjects;
Mesh[]
meshes;
|
[C#] 純文字檢視 複製程式碼 ?
GameObject[]
colliders;
|
[C#] 純文字檢視 複製程式碼 ?
const float
springconstant = 0.02f; const float
damping = 0.04f;
const float
spread = 0.05f;
const float
z = -1f;
|
還要設定一些值:
[C#] 純文字檢視 複製程式碼 ?
float baseheight;
float left;
float bottom;
|
還要定義一些可以在編輯器中修改的公共變數,首先是製作水波四濺效果所需的粒子系統:
[C#] 純文字檢視 複製程式碼 ?
public GameObject
splash:
|
[C#] 純文字檢視 複製程式碼 ?