Automatic Component Generation
Last updated
Last updated
Khi làm việc trong Unity hoặc Blender, bạn sẽ nhận thấy rằng khi tạo một Needle Engine component mới bằng Typescript hoặc Javascript, nó sẽ tự động tạo một Unity C# stub component HOẶC một Blender panel cho bạn.
Điều này là nhờ sự kỳ diệu của chạy ngầm trong môi trường Editor và theo dõi các thay đổi đối với tệp script của bạn. Khi nó nhận thấy bạn đã tạo một Needle Engine component mới, nó sẽ tạo ra component Unity hoặc panel Blender tương ứng, bao gồm các biến public hoặc properties mà bạn có thể đặt hoặc liên kết từ bên trong Editor.
Bạn có thể sử dụng các comment sau trong mã Typescript của mình để kiểm soát hành vi tạo mã C#:
// @generate-component
Buộc tạo class tiếp theo
// @dont-generate-component
Vô hiệu hóa việc tạo class tiếp theo, điều này hữu ích trong trường hợp bạn đã có script C# hiện có trong dự án của mình
// @serializeField
Thêm thuộc tính [SerializeField]
vào trường được tạo
// @type UnityEngine.Camera
Chỉ định kiểu trường C# được tạo
// @nonSerialized
Bỏ qua việc tạo trường hoặc phương thức tiếp theo
Examples
Buộc component compiler tạo trường C# AudioClip có tên myAudioClip
Buộc component compiler kế thừa từ một lớp con cụ thể
Nếu bạn muốn thêm script bên trong thư mục src/scripts
trong dự án của mình, bạn cần có một Component Generator
trên GameObject chứa component ExportInfo
của bạn.
Bây giờ, khi thêm các component mới vào your/threejs/project/src/scripts
, nó sẽ tự động tạo các script Unity trong Assets/Needle/Components.codegen
.
Nếu bạn muốn thêm script vào bất kỳ tệp NpmDef nào, bạn chỉ cần tạo chúng - mỗi NpmDef tự động theo dõi các thay đổi script và xử lý việc tạo component, vì vậy bạn không cần bất kỳ component bổ sung nào trong scene của mình.
Để các trường C# được tạo đúng cách, hiện tại điều quan trọng là bạn phải khai báo rõ ràng kiểu Typescript. Ví dụ: myField : number = 5
Bạn có thể chuyển đổi giữa đầu vào Typescript và các C# stub component được tạo bằng cách sử dụng các tab bên dưới :::: code-group ::: code-group-item Typescript
::: ::: code-group-item Generated C#
::: ::: code-group-item Extending Generated C#
::: ::::
:::tip Member Casing
Các thành viên được export sẽ bắt đầu bằng một chữ cái thường. Ví dụ, nếu thành viên C# của bạn có tên MyString
, nó sẽ được gán cho myString
.
:::
Page automatically translated using AI
Các lớp C# component được tạo với cờ để dễ dàng mở rộng chúng với chức năng. Điều này hữu ích để vẽ gizmos, thêm context menus hoặc thêm các trường hoặc phương thức bổ sung không phải là một phần của component tích hợp sẵn.