Unity C# 物件破壞效果Instantiate應用

 

Instantiate的延伸應用

 

前言:本篇將利用Instantiate功能製作出物件破壞的效果。

 

  • 此篇重點語法 * * * * *

 

→ Instantiate(“物件名稱”, “物件座標”, “物件旋轉值”); 

 

備註:由於先前的文章以詳細介紹生成(Instantiate)的功能的特性,因此本篇將部加以解說,有關生成(Instantiate)相關文章可透過下方傳送門前去了解

 

Instantiate 傳送門:

 

  • 此篇效果 - 破壞效果展示 * * * * 

 

 

 

-  大概了解重點後,接下來進入完整教學   -

 

應用簡述:破壞效果的原理其實很簡單,就是刪除正常的物件,並且在原來的位置生成一個破壞的物件

 

一、匯入正常(沒壞掉)的物件,並且裝上Collider (完成後先擺在旁邊,等等才會用它)。


01.png

 

補充:Collider的類型依使用的物件而定 (本篇用得是長方體,因此使用Box Collider)。

 

 

二、匯入一個被破壞的物件,選取所有的被破壞物件的「子物件」,並且一起給它們裝上Mesh Collider,後將Convex(碰撞機)打勾。完成後再裝上Rigidbody(剛體),用於破壞後的物理運動。

 

1.裝上Mesh Collider

02.png

 

補充:Mesh Collider的特性為建立不規則物件的外框Collider,但相對的吃的效能會比一般的Collider大,因此需謹慎使用。

 

2.勾選Convex

03.jpg

 

3.裝上Rigidbody(剛體)

03-2.png

 

 

三、將被破壞的物件拖曳到下方Project中,作成預置物 (拖下去就叫預置物了,不用設定),接著場景上的被破壞物件就可以刪除了

 

04.png
 

 

四、回到正常(沒壞掉)的物件,新增一個C#程式,並且拖曳到正常(沒壞掉)的物件上。

 

05.png

 

 

五、打開C#程式,輸入以下程式。

 

06.png

 

語法解析:

 

//碎玻璃物件

public GameObject GlassBreak; 

 

//滑鼠點到此物件

void OnMouseDown(){

 

//生成碎玻璃在原本物件的位置

Instantiate (GlassBreak, transform.position, transform.rotation);

 

//刪除沒碎玻璃

Destroy (this.gameObject);

 

}

 

 

六、輸入完後(記得存檔),並且將下方被破壞物件的預置物拖曳進GlassBreak欄位中

 

07.png

 

 

七、這樣就完成囉,可以撥放看看,並且點及物件,看看是否有成功,若沒有請望前查看是否有哪一個步驟沒完成。

 

 

 

備註:本篇所使用的Unity版本為5.6.4

 

-------------------------------------------------------------------------------------------------------------------------------------

 

我們有粉絲專頁囉!!!       

如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!

https://www.facebook.com/Straying2018/

 

●     如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !  

●     對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!  

●     有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家!

 

- By Tim -

arrow
arrow

    tim318407 發表在 痞客邦 留言(0) 人氣()