สร้างวัตถุตาม 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 หากค่าของการเปลี่ยนแปลงสําเร็จรูปวัตถุที่สร้างขึ้นจะถูกสร้างขึ้นตามค่านั้น