สร้างวัตถุตาม Prefab จากสคริปต์

ปรับปรุงหน้า :
วันที่สร้างเพจ :

สภาพแวดล้อมการตรวจสอบ

หน้าต่าง
  • หน้าต่าง 11
บรรณาธิการ Unity
  • ปี 2021.3.3f1
แพ็คเกจระบบอินพุต
  • 1.3.0

ข้อกําหนดเบื้องต้นสําหรับเคล็ดลับนี้

การตั้งค่าต่อไปนี้ได้ทําไว้ล่วงหน้าเพื่อเป็นหลักฐานสําหรับคําอธิบายของเคล็ดลับนี้

สร้างวัตถุโดยยึดตาม Prefab ในสคริปต์

ในเคล็ดลับก่อนหน้านี้เราวางวัตถุจาก Prefab ไปยังมุมมอง แต่ในกรณีนี้เราวางจํานวนวัตถุที่กําหนดไว้ล่วงหน้าและเปิดเกม อย่างไรก็ตามบางเกมอาจต้องการเพิ่มวัตถุแบบไดนามิกในขณะที่เกมกําลังทํางานอยู่ ในกรณีนี้คุณจะต้องเพิ่มจากสําเร็จรูปในสคริปต์

การสร้างตัวอย่าง

หลังจากปรับใช้โครงการใหม่แล้วให้วางปุ่ม ลองสร้างวัตถุจากสําเร็จรูปทุกครั้งที่เราคลิกปุ่ม

สร้าง prefab นี่เป็นขั้นตอนเดียวกับเคล็ดลับก่อนหน้านี้

สร้างสคริปต์เพื่อเพิ่มวัตถุในครั้งต่อไปที่คุณคลิกปุ่ม 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 วัตถุใหม่ตามวัตถุนั้น

ตําแหน่งของวัตถุที่สร้างขึ้นจะกลายเป็นต้นกําเนิดและไม่ว่าจะมีการสร้างวัตถุจํานวนเท่าใดวัตถุจะทับซ้อนกันและยากที่จะเข้าใจดังนั้นตําแหน่งจะถูกกําหนดแบบสุ่มหลังจากการสร้าง ค่าการปรับตําแหน่งมีความเหมาะสมเนื่องจากเป็นตัวอย่าง

แนบสคริปต์กับ EventSystem

GameObject ถูกตั้งค่าให้วางสําเร็จรูปที่นี่

เมื่อคลิกปุ่มวิธีการ OnClick จะถูกเรียก

ตัวอย่างการดําเนินการ

เมื่อสร้างแล้วให้เรียกใช้เกมและคลิกปุ่ม การคลิกแต่ละครั้งควรสร้างวัตถุ

แน่นอนเนื่องจากมันถูกสร้างขึ้นตาม prefab หากค่าของการเปลี่ยนแปลงสําเร็จรูปวัตถุที่สร้างขึ้นจะถูกสร้างขึ้นตามค่านั้น