Needle Engine दस्तावेज़
Downloads
  • What is Needle Engine?
  • प्रशंसापत्र
  • Get an overview

    • Samples and Showcase
    • हमारा दृष्टिकोण 🔮
    • सुविधा अवलोकन
    • तकनीकी अवलोकन
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • Unity के लिए Needle Engine
    • Needle Engine for Blender
    • वेब कंपोनेंट के रूप में Needle Engine
    • अपनी वेबसाइट पर Needle Engine
    • Needle Cloud
  • Topics

    • वेब प्रोजेक्ट स्ट्रक्चर
    • Everywhere Actions
    • Exporting Assets to glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Deployment and Optimization
  • Advanced

    • नेटवर्किंग
    • VR & AR (WebXR)
    • HTML से सीधे Needle Engine का उपयोग करना
    • Editor Sync
  • Troubleshooting

    • How To Debug
    • प्रश्न और उत्तर (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Needle Engine में स्क्रिप्टिंग
    • Unity डेवलपर्स के लिए स्क्रिप्टिंग परिचय
    • नीडल कोर कंपोनेंट्स
    • Everywhere Actions
  • Components and Lifecycle

    • कंपोनेंट बनाना और उपयोग करना
    • @serializable and other decorators
    • कंपोनेंट का स्वतः जनरेशन
    • Scripting Examples
    • Community Contributions
    • अतिरिक्त मॉड्यूल
  • Settings and APIs

    • <needle-engine> कॉन्फ़िगरेशन
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
Downloads
  • What is Needle Engine?
  • प्रशंसापत्र
  • Get an overview

    • Samples and Showcase
    • हमारा दृष्टिकोण 🔮
    • सुविधा अवलोकन
    • तकनीकी अवलोकन
  • Resources

    • Pricing and Plans
    • Changelog
    • API Documentation
    • Support & Community
  • Integrations

    • Unity के लिए Needle Engine
    • Needle Engine for Blender
    • वेब कंपोनेंट के रूप में Needle Engine
    • अपनी वेबसाइट पर Needle Engine
    • Needle Cloud
  • Topics

    • वेब प्रोजेक्ट स्ट्रक्चर
    • Everywhere Actions
    • Exporting Assets to glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Deployment and Optimization
  • Advanced

    • नेटवर्किंग
    • VR & AR (WebXR)
    • HTML से सीधे Needle Engine का उपयोग करना
    • Editor Sync
  • Troubleshooting

    • How To Debug
    • प्रश्न और उत्तर (FAQ) 💡
    • Get Help
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

    • Needle Engine में स्क्रिप्टिंग
    • Unity डेवलपर्स के लिए स्क्रिप्टिंग परिचय
    • नीडल कोर कंपोनेंट्स
    • Everywhere Actions
  • Components and Lifecycle

    • कंपोनेंट बनाना और उपयोग करना
    • @serializable and other decorators
    • कंपोनेंट का स्वतः जनरेशन
    • Scripting Examples
    • Community Contributions
    • अतिरिक्त मॉड्यूल
  • Settings and APIs

    • <needle-engine> कॉन्फ़िगरेशन
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
Samples
Pricing
  • Needle Website
  • Needle Cloud
  • Support Community
  • Discord Server
  • X/Twitter
  • YouTube
  • Newsletter
  • Email
  • Feedback
  • Github
  • English
  • 简体中文
  • Español
  • Português
  • Français
  • हिन्दी
  • 日本語
  • Deutsch
  • Tiếng Việt
  • Getting Started

    • Downloads
    • Needle Engine for Unity
    • Needle Engine for Blender
    • Needle Engine as Web Component
    • Needle Engine on your Website
    • Needle Cloud
    • Custom integrations
    • Support and Community
  • Core Concepts

    • वेब प्रोजेक्ट स्ट्रक्चर
    • Everywhere Actions
    • Exporting Assets to glTF
    • Frameworks, Bundlers, HTML
    • Testing on local devices
    • Deployment and Optimization
    • How To Debug
    • प्रश्न और उत्तर (FAQ) 💡
  • Scripting

    • Needle Engine में स्क्रिप्टिंग
    • Unity डेवलपर्स के लिए स्क्रिप्टिंग परिचय
    • कंपोनेंट बनाना और उपयोग करना
    • कंपोनेंट का स्वतः जनरेशन
    • Scripting Examples
    • Community Contributions
  • Advanced

    • VR & AR (WebXR)
    • नेटवर्किंग
    • Editor Sync
  • Reference

    • सुविधा अवलोकन
    • तकनीकी अवलोकन
    • नीडल कोर कंपोनेंट्स
    • needle.config.json
    • <needle-engine> कॉन्फ़िगरेशन
    • @serializable and other decorators

एडिटर कंपोनेंट का स्वतः जनरेशन

जब आप Unity या Blender में काम करते हैं, तो आप देखेंगे कि जब आप Typescript या Javascript में एक नया Needle Engine कंपोनेंट बनाते हैं, तो यह स्वचालित रूप से आपके लिए एक Unity C# स्टब कंपोनेंट या एक Blender पैनल जनरेट करेगा।

यह Needle कंपोनेंट कंपाइलर के जादू के कारण होता है जो एक एडिटर वातावरण में पर्दे के पीछे चलता है और आपकी स्क्रिप्ट फ़ाइलों में बदलावों को देखता है। जब यह नोटिस करता है कि आपने एक नया Needle Engine कंपोनेंट बनाया है, तो यह सही Unity कंपोनेंट या Blender पैनल जनरेट करेगा, जिसमें पब्लिक वेरिएबल्स या प्रॉपर्टीज़ शामिल होंगी जिन्हें आप एडिटर के भीतर से सेट या लिंक कर सकते हैं।

कंपोनेंट जनरेशन को नियंत्रित करना

C# कोड जनरेशन के व्यवहार को नियंत्रित करने के लिए आप अपने Typescript कोड में निम्नलिखित टिप्पणियों (comments) का उपयोग कर सकते हैं:

एट्रीब्यूट (Attribute)परिणाम (Result)
// @generate-componentअगली क्लास का जनरेशन फोर्स करें
// @dont-generate-componentअगली क्लास का जनरेशन डिसेबल करें, यह उन मामलों में उपयोगी है जहाँ आपके प्रोजेक्ट में पहले से ही एक मौजूदा C# स्क्रिप्ट है
// @serializeFieldजनरेट किए गए फ़ील्ड को [SerializeField] से डेकोरेट करें
// @type UnityEngine.Cameraजनरेट किए गए C# फ़ील्ड का टाइप स्पेसिफाई करें
// @nonSerializedअगले फ़ील्ड या मेथड का जनरेशन स्किप करें

उदाहरण

कंपोनेंट कंपाइलर को myAudioClip नाम का C# AudioClip फ़ील्ड जनरेट करने के लिए फोर्स करें

import { Behaviour, serializable } from "@needle-tools/engine";

export class MyComponent extends Behaviour {
	//@type UnityEngine.AudioClip
	@serializable()
	myAudioClip?: string;
}

कंपोनेंट कंपाइलर को एक विशिष्ट सबक्लास से डिराइव करने के लिए फोर्स करें

import { Behaviour } from "@needle-tools/engine";
export class MyCustomBaseClass extends Behaviour { /* ... */ }
// ---cut-before---
//@type MyNamespace.MyCustomBaseClass
export class MyComponent extends MyCustomBaseClass {
}

Unity में कंपोनेंट कंपाइलर

यदि आप अपने प्रोजेक्ट में src/scripts फ़ोल्डर के अंदर स्क्रिप्ट जोड़ना चाहते हैं, तो आपको अपने ExportInfo कंपोनेंट वाले GameObject पर एक Component Generator रखना होगा। अब जब आप your/threejs/project/src/scripts में नए कंपोनेंट जोड़ेंगे, तो यह Assets/Needle/Components.codegen में स्वचालित रूप से Unity स्क्रिप्ट जनरेट करेगा। यदि आप किसी भी NpmDef फ़ाइल में स्क्रिप्ट जोड़ना चाहते हैं तो आप बस उन्हें बना सकते हैं - प्रत्येक NpmDef स्वचालित रूप से स्क्रिप्ट बदलावों को देखता है और कंपोनेंट जनरेशन को संभालता है, इसलिए आपको अपने सीन में किसी अतिरिक्त कंपोनेंट की आवश्यकता नहीं है।

C# फ़ील्ड को सही ढंग से जनरेट करने के लिए, वर्तमान में यह महत्वपूर्ण है कि आप स्पष्ट रूप से एक Typescript टाइप घोषित करें। उदाहरण के लिए myField : number = 5

आप नीचे दिए गए टैब का उपयोग करके Typescript इनपुट और जनरेट किए गए C# स्टब कंपोनेंट के बीच स्विच कर सकते हैं :::: code-group ::: code-group-item Typescript

import { AssetReference, Behaviour, serializable } from "@needle-tools/engine";
import { Object3D } from "three";

export class MyCustomComponent extends Behaviour {
    @serializable()
    myFloatValue: number = 42;

    @serializable(Object3D)
    myOtherObject?: Object3D;

    @serializable(AssetReference)
    prefabs: AssetReference[] = [];

    start() {
        this.sayHello();
    }

    private sayHello() {
        console.log("Hello World", this);
    }
}

::: ::: code-group-item जनरेटेड C#

// NEEDLE_CODEGEN_START
// auto generated code - do not edit directly

#pragma warning disable

namespace Needle.Typescript.GeneratedComponents
{
	public partial class MyCustomComponent : UnityEngine.MonoBehaviour
	{
		public float @myFloatValue = 42f;
		public UnityEngine.Transform @myOtherObject;
		public UnityEngine.Transform[] @prefabs = new UnityEngine.Transform[]{ };
		public void start(){}
		public void update(){}
	}
}

// NEEDLE_CODEGEN_END

::: ::: code-group-item जनरेटेड C# का विस्तार करना

using UnityEditor;

// you can add code above or below the NEEDLE_CODEGEN_ blocks

// NEEDLE_CODEGEN_START
// auto generated code - do not edit directly

#pragma warning disable

namespace Needle.Typescript.GeneratedComponents
{
	public partial class MyCustomComponent : UnityEngine.MonoBehaviour
	{
		public float @myFloatValue = 42f;
		public UnityEngine.Transform @myOtherObject;
		public UnityEngine.Transform[] @prefabs = new UnityEngine.Transform[]{ };
		public void start(){}
		public void update(){}
	}
}

// NEEDLE_CODEGEN_END

namespace Needle.Typescript.GeneratedComponents
{
    // This is how you extend the generated component (namespace and class name must match!)
	public partial class MyCustomComponent : UnityEngine.MonoBehaviour
	{
		
		public void MyAdditionalMethod()
		{
		}

		private void OnValidate()
		{
			myFloatValue = 42;
		}
	}

    // of course you can also add custom editors
	[CustomEditor(typeof(MyCustomComponent))]
	public class MyCustomComponentEditor : Editor
	{
		public override void OnInspectorGUI()
		{
			EditorGUILayout.HelpBox("This is my sample component", MessageType.None);
			base.OnInspectorGUI();
		}
	}
}

::: ::::

जनरेट किए गए कंपोनेंट का विस्तार करना

कंपोनेंट C# क्लास partial फ़्लैग के साथ जनरेट किए जाते हैं ताकि उन्हें फंक्शनैलिटी के साथ आसानी से बढ़ाया जा सके। यह गिज़्मो बनाने, संदर्भ मेनू जोड़ने या अतिरिक्त फ़ील्ड या मेथड जोड़ने में सहायक होता है जो बिल्ट-इन कंपोनेंट का हिस्सा नहीं हैं।

मेंबर केसिंग

एक्सपोर्ट किए गए सदस्य छोटे अक्षर से शुरू होंगे। उदाहरण के लिए, यदि आपके C# सदस्य का नाम MyString है, तो उसे myString असाइन किया जाएगा।

यह पृष्ठ AI का उपयोग करके स्वचालित रूप से अनुवादित किया गया है।

Suggest changes
Last Updated:: 22/4/25, 11:01 am
Prev
कंपोनेंट बनाना और उपयोग करना
Next
Scripting Examples