Vytvoření objektu založeného na paneláku ze skriptu

Stránky aktualizovány :
Datum vytvoření stránky :

Ověřovací prostředí

Windows
  • Systém Windows 11
Editor jednoty
  • 2021.3.3f1
Vstupní systémový balíček
  • 1.3.0

Předpoklady pro tento tip

Následující nastavení byla provedena předem jako předpoklad pro popis tohoto tipu.

Vytvoření objektu založeného na paneláku ve skriptu

V předchozích Tipech jsme umístili objekty z paneláku na pohled, ale v tomto případě umístíme předem stanovený počet objektů a spustíme hru. Některé hry však mohou chtít přidávat objekty dynamicky, když je hra spuštěna. V takovém případě ji budete muset přidat z paneláku ve skriptu.

Vytvoření vzorku

Po nasazení nového projektu umístěte tlačítko. Pokusme se vygenerovat objekt z paneláku pokaždé, když klikneme na tlačítko.

Vytvořte panelák. Jedná se o stejný postup jako předchozí tipy.

Vytvořte skript pro přidání objektu při příštím kliknutí na tlačítko. ButtonEvent Název ponechte jako .

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 Definujte pole tak, abyste mohli předem nastavit, které paneláky se mají vygenerovat.

Instantiate Můžete předat metodu pro vytvoření GameObject nového objektu založeného na tomto objektu.

Poloha vytvořeného objektu se stává počátkem a bez ohledu na to, kolik objektů je vytvořeno, objekty se překrývají a je obtížné pochopit, takže pozice je nastavena náhodně po vytvoření. Hodnota nastavení polohy je vhodná, protože se jedná o vzorek.

Připojte skript k EventSystem.

GameObject je nastavena, takže sem zahoďte panelák.

Po kliknutí na tlačítko je OnClick metoda volána.

Ukázka provedení

Po vytvoření spusťte hru a klikněte na tlačítko. Každé kliknutí by mělo vygenerovat objekt.

Samozřejmě, protože je generován na základě paneláku, pokud se změní hodnota paneláku, vygenerovaný objekt bude generován podle této hodnoty.