Unity C# 物件破壞效果Instantiate應用
Instantiate的延伸應用
前言:本篇將利用Instantiate功能製作出物件破壞的效果。
- 此篇重點語法 * * * * *
→ Instantiate(“物件名稱”, “物件座標”, “物件旋轉值”);
備註:由於先前的文章以詳細介紹生成(Instantiate)的功能的特性,因此本篇將部加以解說,有關生成(Instantiate)相關文章可透過下方傳送門前去了解。
Instantiate 傳送門:
- 「Unity C# 生成 Instantiate (一)」:https://goo.gl/XBhBcU
- 「Unity C# 生成 Instantiate (二)」:https://goo.gl/KesoVu
- 「Unity C# 生成 Instantiate (三)」:https://goo.gl/HRMkP1
- 此篇效果 - 破壞效果展示 * * * *
- 大概了解重點後,接下來進入完整教學 -
應用簡述:破壞效果的原理其實很簡單,就是刪除正常的物件,並且在原來的位置生成一個破壞的物件。
一、匯入正常(沒壞掉)的物件,並且裝上Collider (完成後先擺在旁邊,等等才會用它)。
補充:Collider的類型依使用的物件而定 (本篇用得是長方體,因此使用Box Collider)。
二、匯入一個被破壞的物件,選取所有的被破壞物件的「子物件」,並且一起給它們裝上Mesh Collider,後將Convex(碰撞機)打勾。完成後再裝上Rigidbody(剛體),用於破壞後的物理運動。
1.裝上Mesh Collider
補充:Mesh Collider的特性為建立不規則物件的外框Collider,但相對的吃的效能會比一般的Collider大,因此需謹慎使用。
2.勾選Convex
3.裝上Rigidbody(剛體)
三、將被破壞的物件拖曳到下方Project中,作成預置物 (拖下去就叫預置物了,不用設定),接著場景上的被破壞物件就可以刪除了。
四、回到正常(沒壞掉)的物件,新增一個C#程式,並且拖曳到正常(沒壞掉)的物件上。
五、打開C#程式,輸入以下程式。
語法解析:
//碎玻璃物件
publicGameObject GlassBreak;
//滑鼠點到此物件
void OnMouseDown(){
//生成碎玻璃在原本物件的位置
Instantiate (GlassBreak, transform.position, transform.rotation);
//刪除沒碎玻璃
Destroy (this.gameObject);
}
六、輸入完後(記得存檔),並且將下方被破壞物件的預置物拖曳進GlassBreak欄位中。
七、這樣就完成囉,可以撥放看看,並且點及物件,看看是否有成功,若沒有請望前查看是否有哪一個步驟沒完成。
備註:本篇所使用的Unity版本為5.6.4
-------------------------------------------------------------------------------------------------------------------------------------
我們有粉絲專頁囉!!!
如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!
https://www.facebook.com/Straying2018/
● 如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !
● 對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!
● 有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家!
- By Tim -