從文稿基於預製件創建物件
更新頁 :
頁面創建日期 :
驗證環境
- 窗戶
-
- 視窗 11
- 統一編輯器
-
- 2021.3.3f1
- 輸入系統包
-
- 1.3.0
此提示的先決條件
作為此提示描述的前提,已預先進行了以下設置。
基於文稿中的預製件創建物件
在前面的提示中,我們將物件從預製件放置到視圖中,但在這種情況下,我們放置了預定數量的物件並啟動遊戲。 但是,某些遊戲可能希望在遊戲運行時動態添加物件。 在這種情況下,您必須從腳本中的預製件添加它。
樣品創建
部署新專案后,放置按鈕。 讓我們嘗試在每次按下按鈕時從預製件生成一個物件。
創建預製件。 此過程與前面的提示相同。
創建一個腳本,以便在下次按兩下該按鈕時添加物件。 ButtonEvent
將名稱保留為 。
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
[SerializeField] private GameObject SpritePrefab;
public void OnClick()
{
// Instantiate にプレハブを渡すとそれをもとに新しいオブジェクトを生成する
var obj = Instantiate(SpritePrefab);
// 配置位置はランダムに
obj.transform.localPosition = new Vector3(Random.value * 6 - 3, Random.value * 6 - 3);
}
}
GameObject
定義欄位,以便您可以提前設置要基於哪個預製件生成。
Instantiate
您可以傳遞一個方法來基於該物件創建新 GameObject
物件。
創建物件的位置成為原點,無論創建多少物件,物件重疊且難以理解,因此創建后隨機設置位置。 位置調整值是合適的,因為它是一個樣本。
將腳本附加到事件系統。
GameObject
已設置,因此將預製件拖放到此處。
按兩下按鈕時,將 OnClick
調用該方法。
示例執行
創建后,運行遊戲並按下按鈕。 每次按兩下都應生成一個物件。
當然,由於它是基於預製件生成的,如果預製件的值發生變化,生成的對象將根據該值生成。