Automatische Komponenten-Generierung
Last updated
Last updated
Beim Arbeiten in Unity oder Blender wirst du feststellen, dass, wenn du eine neue Needle Engine Komponente in Typescript oder Javascript erstellst, automatisch ein Unity C# Stub Komponente ODER ein Blender Panel für dich generiert wird.
Dies ist der Magie des zu verdanken, der im Hintergrund in einer Editor-Umgebung läuft und Änderungen an deinen Skriptdateien überwacht. Wenn er bemerkt, dass du eine neue Needle Engine Komponente erstellt hast, generiert er die korrekte Unity Komponente oder das Blender Panel inklusive öffentlicher Variablen oder Properties, die du dann im Editor setzen oder verknüpfen kannst.
Du kannst die folgenden Kommentare in deinem Typescript Code verwenden, um das Verhalten der C#-Code-Generierung zu steuern:
// @generate-component
Erzwingt die Generierung der nächsten Klasse
// @dont-generate-component
Deaktiviert die Generierung der nächsten Klasse; dies ist nützlich in Fällen, in denen du bereits ein bestehendes C#-Skript in deinem Projekt hast
// @serializeField
Dekoriert das generierte Feld mit [SerializeField]
// @type UnityEngine.Camera
Spezifiziert den Typ des generierten C#-Feldes
// @nonSerialized
Überspringt die Generierung des nächsten Feldes oder der nächsten Methode
Beispiele
Erzwingt, dass der component compiler ein C# AudioClip-Feld namens myAudioClip
generiert
Erzwingt, dass der component compiler von einer spezifischen Unterklasse ableitet
Wenn du Skripte im Ordner src/scripts
in deinem Projekt hinzufügen möchtest, benötigst du einen Component Generator
auf dem GameObject mit deiner ExportInfo
Komponente.
Wenn du nun neue Komponenten in your/threejs/project/src/scripts
hinzufügst, werden automatisch Unity Skripte in Assets/Needle/Components.codegen
generiert.
Wenn du Skripte zu einer NpmDef Datei hinzufügen möchtest, kannst du sie einfach erstellen - jede NpmDef überwacht automatisch Skriptänderungen und handhabt die Komponenten-Generierung, sodass du keine zusätzliche Komponente in deiner Szene benötigst.
Damit C#-Felder korrekt generiert werden, ist es derzeit wichtig, dass du explizit einen Typescript-Typ deklarierst. Zum Beispiel myField : number = 5
Du kannst über die Tabs unten zwischen Typescript Eingabe und generierten C# Stub-Komponenten wechseln :::: code-group ::: code-group-item Typescript
::: ::: code-group-item Generated C#
::: ::: code-group-item Extending Generated C#
::: ::::
:::tip Member Casing
Exportierte Member beginnen mit einem Kleinbuchstaben. Wenn dein C#-Member zum Beispiel MyString
benannt ist, wird es myString
zugewiesen.
:::
Page automatically translated using AI
C#-Klassen von Komponenten werden mit dem Flag generiert, um sie einfach um Funktionalität zu erweitern. Dies ist hilfreich, um Gizmos zu zeichnen, Kontextmenüs hinzuzufügen oder zusätzliche Felder oder Methoden hinzuzufügen, die nicht Teil einer integrierten Komponente sind.