從文稿基於預製件創建物件

更新頁 :
頁面創建日期 :

驗證環境

窗戶
  • 視窗 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 調用該方法。

示例執行

創建后,運行遊戲並按下按鈕。 每次按兩下都應生成一個物件。

當然,由於它是基於預製件生成的,如果預製件的值發生變化,生成的對象將根據該值生成。