Unity3D常用 API 之實例化與銷毀


1.實例化游戲物體

1.1.游戲中的案例介紹

在很多 MMORPG 類的游戲中都有類似於“金錢副本”的副本關卡。在這類副

本中通常都是限定一個時間,在這個時間內玩家可以盡情的破壞,然后收集金錢。

分析游戲截圖講解場景元素:[見圖]

 

①場景中所有的壇子,模型都是一樣的,壇子是預制體。

②壇子是從“天上”掉下來的,所以壇子模型身上有剛體組件。

③如果玩家在一段時間內沒有打碎壇子,這些壇子會消失。

1.2.案例場景制作

①創建地面模型;(Plane)

②創建“壇子”模型,並制作成預制體;(Cube)

1.3.實例化生成 1 個壇子

實例化生成物體:

GameObject.Instantiate(Object, Vector3, Quaternion);

參數說明:

Object:用於實例化的預制體;

Vector3:實例化后生成的物體所在的位置;

Quaternion[四元數]:實例化后生成的物體的旋轉狀態;

Quaternion.identity:無旋轉;

圖解:

這里選擇public(公共的)修飾,會在script面板中出現一個Go Prafab的屬性,如果是private(私有的)是沒有的;

 

 

通過拖拽就可以讓goPrafab字段持有了Cube的應用,在代碼中就可以訪問到它了

運行游戲:在Create上方1M的就被實例化出了一個cube

實例化出來的物體是有clone標志的

 

 

 

1.4.構造隨機位置

位置是用 Vector3 類型進行表示的。

X,Y,Z 三個值確定了物體在三維世界中的位置。

Random.Range(min, max):生成隨機數。

在 min 和 max 直接隨機生成一個隨機數。

 

圖解:

 

 

 

表示在X軸的9到-9之間、Y軸的10、Z軸的9到-9之間當中的位置其中一個位置生成

 

 

在演示中,可以看到每次運行了3次游戲,每次Cube產生的位置都不同,但高度不變

 

演示:按下鍵盤的一個鍵,就在隨機位置實例化一個物體。

X軸和Z軸隨機,Y軸不隨機

 

2.銷毀游戲物體

GameObject.Destroy(Object, float);定時銷毀某個游戲物體。

參數說明:

Object:要銷毀的游戲物體;(自身叫gameObeject)

float:時間,多少秒后銷毀;

 

因為銷毀動作是物體自身的動作,所以我們將這個新的腳本掛載到要銷毀的物體身上

開始后,物體逐漸消失

 


免責聲明!

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



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