Vytvoření objektu založeného na paneláku ze skriptu
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.