Automatic Component Generation
Last updated
Last updated
Ao trabalhar no Unity ou Blender, notará que, ao criar um novo componente Needle Engine em Typescript ou Javascript, ele gerará automaticamente um componente C# stub do Unity OU um painel do Blender para si.
Isto é graças à magia do que é executado em segundo plano num ambiente de editor e monitoriza as alterações nos seus ficheiros de script. Quando este deteta que criou um novo componente Needle Engine, gerará então o componente Unity ou painel Blender correto, incluindo variáveis públicas ou propriedades que pode definir ou ligar a partir do Editor.
Pode usar os seguintes comentários no seu código typescript para controlar o comportamento da geração de código C#:`
// @generate-component
Forçar a geração da próxima classe
// @dont-generate-component
Desativar a geração da próxima classe, isto é útil em casos em que já tem um script C# existente no seu projeto
// @serializeField
Decorar campo gerado com [SerializeField]
// @type UnityEngine.Camera
Especificar o tipo de campo C# gerado
// @nonSerialized
Ignorar a geração do próximo campo ou método
Exemplos
Forçar o compilador de componentes a gerar um campo C# AudioClip chamado myAudioClip
Forçar o compilador de componentes a derivar de uma subclasse específica
Se quiser adicionar scripts dentro da pasta src/scripts
no seu projeto, então precisa de ter um Component Generator
no GameObject com o seu componente ExportInfo
.
Agora, ao adicionar novos componentes em your/threejs/project/src/scripts
, ele gerará automaticamente scripts Unity em Assets/Needle/Components.codegen
.
Se quiser adicionar scripts a qualquer ficheiro NpmDef, pode simplesmente criá-los - cada NpmDef monitoriza automaticamente as alterações nos scripts e trata da geração de componentes, para que não precise de nenhum componente adicional na sua cena.
Para que os campos C# sejam corretamente gerados, é atualmente importante que declare explicitamente um tipo Typescript. Por exemplo myField : number = 5
Pode alternar entre a entrada Typescript e os componentes stub C# gerados usando os separadores abaixo ::: code-tabs @tab Typescript
@tab Generated C#
@tab Extending Generated C#
:::
:::tip Casing de Membros
Os membros exportados começarão com uma letra minúscula. Por exemplo, se o seu membro C# se chamar MyString
, ele será atribuído a myString
.
:::
Página traduzida automaticamente usando IA
As classes C# de componentes são geradas com a flag para que seja fácil estendê-las com funcionalidade. Isto é útil para desenhar gizmos, adicionar menus de contexto ou adicionar campos ou métodos adicionais que não fazem parte de um componente incorporado.