Objekti loomine skriptist valmisseadme põhjal

Lehekülg uuendatud :
Lehe loomise kuupäev :

Kontrollimise keskkond

Windows
  • Windows 11
Ühtsuse toimetaja
  • 2021.3.3f1
Sisendsüsteemi pakett
  • 1.3.0

Selle näpunäite eeltingimused

Selle vihje kirjeldamise eelduseks on eelnevalt tehtud järgmised sätted.

Objekti loomine skripti eelmenüü põhjal

Eelmistes näpunäidetes paigutasime objektid prefabist vaatesse, kuid sel juhul asetame etteantud arvu objekte ja käivitame mängu. Kuid mõned mängud võivad soovida mängu ajal objekte dünaamiliselt lisada. Sellisel juhul peate selle skripti eelmenüüst lisama.

Proovi loomine

Pärast uue projekti juurutamist asetage nupp. Proovime genereerida objekti kokkupandavast iga kord, kui klõpsame nuppu.

Looge kokkupandav. See on sama protseduur nagu eelmised nõuanded.

Looge skript, et lisada objekt järgmisel nupul. ButtonEvent Jätke nimi nimeks .

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 Määratlege väli, et saaksite eelnevalt määrata, milline valmisseade luuakse.

Instantiate Saate edastada meetodi selle objekti põhjal uue objekti loomiseks GameObject .

Loodud objekti asukoht muutub päritoluks ja olenemata sellest, kui palju objekte on loodud, kattuvad objektid ja seda on raske mõista, nii et positsioon määratakse juhuslikult pärast loomist. Asukoha reguleerimise väärtus on asjakohane, kuna tegemist on valimiga.

Manustage skript EventSystemile.

GameObject on seatud nii, et viska paneelmaja siia.

Nupu klõpsamisel nimetatakse meetodit OnClick .

Proovi täitmine

Kui see on loodud, käivitage mäng ja klõpsake nuppu. Iga klõps peaks looma objekti.

Muidugi, kuna see genereeritakse prefabi põhjal, siis kui kokkupandava väärtus muutub, genereeritakse genereeritud objekt vastavalt sellele väärtusele.