Generación Automática de Componentes
Generación automática de componentes de Editor
Cuando trabajas en Unity o Blender, notarás que al crear un nuevo componente de Needle Engine en Typescript o Javascript, se generará automáticamente un componente C# stub de Unity O un panel de Blender para ti.
Esto es gracias a la magia del compilador de componentes de Needle que se ejecuta en segundo plano en un entorno de editor y observa los cambios en tus archivos de script. Cuando nota que has creado un nuevo componente de Needle Engine, generará el componente de Unity o el panel de Blender correctos, incluyendo variables o propiedades públicas que luego podrás configurar o enlazar desde dentro del Editor.
Nota: El compilador de componentes actualmente solo genera componentes. Por lo tanto, si necesitas exponer un Typescript Enum en Unity, puedes añadirlo a tu C# manualmente, ya sea en un nuevo archivo C# o fuera del código generado (consulta los ejemplos a continuación)
Control de la generación de componentes
Puedes usar los siguientes comentarios en tu código typescript para controlar el comportamiento de generación de código C#:
// @generate-component
Forzar la generación de la siguiente clase
// @dont-generate-component
Deshabilitar la generación de la siguiente clase, esto es útil en casos donde ya tienes un script C# existente en tu proyecto
// @serializeField
Decorar el campo generado con [SerializeField]
// @type UnityEngine.Camera
Especificar el tipo del campo C# generado
// @nonSerialized
Omitir la generación del siguiente campo o método
Ejemplos
Fuerza al compilador de componentes a generar un campo C# AudioClip llamado myAudioClip
import { Behaviour, serializable } from "@needle-tools/engine";
export class MyComponent extends Behaviour {
//@type UnityEngine.AudioClip
@serializable()
myAudioClip?: string;
}
Fuerza al compilador de componentes a derivar de una subclase específica
Compilador de Componentes en Unity
Si quieres añadir scripts dentro de la carpeta src/scripts en tu proyecto, necesitas tener un Component Generator en el GameObject con tu componente ExportInfo.
Ahora, al añadir nuevos componentes en your/threejs/project/src/scripts, generará automáticamente scripts de Unity en Assets/Needle/Components.codegen.
Si quieres añadir scripts a cualquier archivo NpmDef, simplemente puedes crearlos - cada NpmDef observa automáticamente los cambios de script y maneja la generación de componentes, por lo que no necesitas ningún componente adicional en tu escena.
Para que los campos C# se generen correctamente, actualmente es importante que declares explícitamente un tipo Typescript. Por ejemplo myField : number = 5
Puedes cambiar entre la entrada Typescript y los componentes C# stub generados usando las pestañas de abajo ::: code-tabs @tab Typescript
@tab C# Generado
@tab Extensión del C# Generado
:::
Extensión de componentes generados
Las clases C# de componentes se generan con el flag partial para facilitar su extensión con funcionalidad. Esto es útil para dibujar gizmos, añadir menús contextuales o añadir campos o métodos adicionales que no forman parte de un componente built-in.
:::tip Uso de mayúsculas en miembros
Los miembros exportados comenzarán con una letra minúscula. Por ejemplo, si tu miembro C# se llama MyString, se asignará a myString.
:::
Página traducida automáticamente usando IA
Last updated