FertighausWas ist ein Prefab? Es bedeutet wörtlich eine Knotenressource, die vor der Verwendung vorgefertigt wird. Seine Eigenschaften sind die gleichen wie die eines gewöhnlichen Knotens. Es kann als gewöhnlicher Knoten betrachtet werden, der vorgefertigt und noch nicht angezeigt ist. So erstellen Sie ein Fertighaus1. Erstellen Sie im Hierarchiemanager einen normalen Knoten und ziehen Sie diesen Knoten dann in den Assets-Ordner im Ressourcenmanager. Zur Vereinfachung der Verwaltung wird ein Prefab-Ordner erstellt, in dem Prefabs einheitlich gespeichert werden. Doppelklicken Sie auf den Prefab-Knoten, damit er blau wird. Sie können jetzt den in der Szene verbleibenden Knoten löschen. Wenn Sie den Knoten verwenden müssen, erstellen Sie ihn über das Prefab. Zu diesem Zeitpunkt können Sie die Eigenschaften im Eigenschafteninspektor sehen, die mit denen normaler Knoten identisch sind. Die Rolle vorgefertigter1. Erstellen Sie Knoten desselben Typs in StapelnIm Wesentlichen geht es darum, eine Vorlage mithilfe eines Prefabs zu erstellen und dann Stapel zu erstellen, indem diese Prefab-Vorlage kopiert wird Schritt 1: Knoten stapelweise erstellen und in den Objektpool einfügen @Eigenschaft(cc.Prefab) Fertighaus:cc.Prefab = null; //Deklarieren Sie einen Prefab-Typ im Property-Manager, um das definierte Prefab im Property-Manager zu mounten @property(cc.NodePool) nodePools:cc.NodePool = null; // Deklarieren Sie einen Objektpool, um von Prefabs erstellte Objekte zu speichern. Verwenden Sie Prefabs, um genügend Knoten desselben Typs gleichzeitig zu erstellen, und legen Sie sie dann in den Objektpool. Nehmen Sie sie bei Bedarf heraus und legen Sie sie wieder zurück, wenn sie nicht benötigt werden, um die langfristige Erstellung und Zerstörung einer großen Anzahl von Knoten zu vermeiden. for(let i:number = 0; i < 100; i++){ //100 Knoten erstellen let node:cc.Node = cc.instantiate(this.prefab); dies.nodePools.put(Knoten); //Jeden Knoten in den Objektpool setzen} Schritt 2: Nehmen Sie es heraus und verwenden Sie es, wenn Sie es brauchen lass node:cc.Node = null; // Bestimmen Sie, ob sich im Objektpool inaktive Objekte befinden, if (this.nodePools.size() > 0) { // Verwenden Sie die Methode get, um das inaktive Objekt abzurufen. Übergeben Sie zu diesem Zeitpunkt den Objektpool nodePools, in dem die im Stapel erstellten Knoten gespeichert sind, als abzurufenden Parameter. Anschließend können Sie es im an das Prefab gebundenen Skript wieder in den Objektpool einfügen (vorausgesetzt, es handelt sich um nodePrefab.ts) node = this.nodePools.get(this.nodePools); }anders{ // Wenn kein Leerlaufobjekt vorhanden ist, erstellen Sie es über den Prefab-Knoten = cc.instantiate(this.prefab); } // Das Mounten auf dem übergeordneten Knoten entspricht dem manuellen Mounten per Drag & Drop this.node.addChild(node); Schritt 3: Den Knoten nach der Verwendung zurückgeben // Angenommen, dies ist das oben erwähnte Prefab-Skript nodePrefab.ts nodePools:cc.NodePool = null; // Nachdem Sie den Knoten im Objektpool über node = this.nodePools.get(this.nodePools); oben herausgenommen haben, definieren Sie im Prefab-Skript einen Objektpool, um den über get oben übergebenen Objektpool zu empfangen/*So dass, wenn nodePool.get() verwendet wird, um den Knoten abzurufen, Um die Registrierung des Klickereignisses abzuschließen, wird die Wiederverwendungsmethode im Prefab-Skript nodePrefab.ts aufgerufen. Darüber hinaus kann cc.NodePool.get() eine beliebige Anzahl von Parametern beliebigen Typs übergeben, und diese Parameter werden unverändert an die Wiederverwendungsmethode übergeben*/ // Alles was wir tun müssen, ist eine Rückrufmethode für das Wiederverwendungssystem zu implementieren reuse(EnemyPools:cc.NodePool) { // Holen Sie sich die in get this.EnemyPools = EnemyPools übergebene Instanz der Verwaltungsklasse. } // Schreiben Sie eine Funktion zum Recycling von Objekten hit () { // Prüfen, ob der Objektpool existiert if(this.nodePools){ // Den aktuellen Knoten wiederherstellen this.nodePools.put(this.node); }anders{ // Andernfalls zerstören Sie den Knoten direkt this.node.destroy(); } } 2. Erstellen Sie im Voraus einige Knoten, die zu bestimmten Zeiten angezeigt werden müssenWie beispielsweise eine Eingabeaufforderung //Erstellen Sie ein Prefab, um das definierte Prefab im Eigenschafteninspektor zu mounten @property(cc.Prefab) testPrefab:cc.Prefab = null; // Wenn Sie diesen Knoten anzeigen müssen, kopieren Sie einfach die Prefab-Erstellung wie oben let node = cc.instantiate(this.testPrefab); // Zum übergeordneten Knoten mounten this.node.addChild(node); Die oben genannten sind alle gemountet, und das Folgende verwendet eine dynamische Lademethode, sodass es geladen werden kann, ohne @property (cc.Prefab) wie eine Mounting-Methode zu verwenden. // Da die folgende Callback-Funktion dies nicht verwenden kann, muss eine Variable definiert werden, die hieran übergeben wird. sei m_this = dies; /* Verwenden Sie cc.loader.loadRes, um Prefab dynamisch zu laden. Erstellen Sie zunächst einen Ressourcenordner unter dem Assets-Ordner und legen Sie dann die Prefab-Ressourcen darunter ab. Der erste Parameter ist der absolute Pfad des Prefabs unter Ressourcen, sodass das Prefab im Prefab-Parameter des zweiten Funktionstypparameters abgerufen wird */ [Offizielle Website der Cocos-Dokumentation](https://docs.cocos.com/creator/manual/zh/scripting/load-assets.html?h=assets) cc.loader.loadRes("assets/OptionBox", Funktion (err, vorgefertigt) { wenn(!prefab){ cc.log("Prefab ist leer"); } var neuerNode = cc.instantiate(prefab); wenn(!neuerNode){ cc.log("Knoten ist leer"); } // Als untergeordneten Knoten des aktuellen Knotens hinzufügen m_this.node.addChild(newNode); Oben sind zwei gängige Lösungen für die Verwendung von Prefabs aufgeführt. Die erste Methode wird beispielsweise verwendet, um Feinde und Kugeln stapelweise zu erstellen. Die zweite Methode kann auch in Szenarien, in denen sie wiederholt verwendet wird oder Eingabeaufforderungsfelder durch bestimmte Situationen ausgelöst werden, zu einem Prefab gemacht werden. Oben finden Sie eine ausführliche Erläuterung des Cocoscreater-Prefabs. Weitere Informationen zum Cocoscreater-Prefab finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Grafisches Tutorial zur MySQL 5.7-Konfiguration ohne Installation
>>: So fügen Sie einem laufenden Docker-Container dynamisch ein Volume hinzu
Bibliotheksverwaltung Erstellen einer Bibliothek ...
Ich habe ein halbes Jahr lang nicht gebloggt, wofü...
Im Allgemeinen : [1 wichtige Flagge] > [4 beson...
Vorwort Normalerweise müssen Sie beim Erstellen v...
In diesem Artikel wird der spezifische Code für J...
Vorwort Normaler Geschäftsbedarf: Hochladen von B...
Vorwort Obwohl manche Liebe auf dieser Welt ihren...
In diesem Artikel wird der spezifische JavaScript...
Da das Projekt einen Fragebogen erfordert, der Kun...
In diesem Artikel wird der spezifische Code von j...
Methode 1: Absenden über den Absenden-Button <...
Code kopieren Der Code lautet wie folgt: <!DOC...
30 kostenlose englische Ribbon-Schriftarten in hoh...
Allgemeine Kommentare in HTML: <!--XXXXXXXX--&g...
1. Einleitung Git ist ein kostenloses, verteiltes...