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

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

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

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

    • Needle Engine प्रोजेक्ट की संरचना
    • Everywhere Actions
    • glTF में एसेट एक्सपोर्ट करना
    • फ़्रेमवर्क, बंडलर्स, HTML
    • स्थानीय डिवाइसों पर परीक्षण
    • डिप्लॉयमेंट और ऑप्टिमाइजेशन
  • Advanced

    • VR और AR (WebXR)
    • Image Tracking (WebXR)
    • नेटवर्किंग
    • MaterialX
    • Editor Sync
    • Responsive 3D Webdesign
  • Troubleshooting

    • डीबग कैसे करें
    • प्रश्न और उत्तर (FAQ) 💡
    • Support and Community
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

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

    • घटक बनाना और उपयोग करना
    • @serializable और अन्य डेकोरेटर्स
    • कंपोनेंट का स्वचालित जनरेशन
    • स्क्रिप्टिंग उदाहरण
    • Community Contributions
    • अतिरिक्त मॉड्यूल
  • Settings and APIs

    • <needle-engine> कॉन्फ़िगरेशन
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
  • 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
    • Needle Inspector
  • Integrations

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

    • Needle Engine प्रोजेक्ट की संरचना
    • Everywhere Actions
    • glTF में एसेट एक्सपोर्ट करना
    • फ़्रेमवर्क, बंडलर्स, HTML
    • स्थानीय डिवाइसों पर परीक्षण
    • डिप्लॉयमेंट और ऑप्टिमाइजेशन
  • Advanced

    • VR और AR (WebXR)
    • Image Tracking (WebXR)
    • नेटवर्किंग
    • MaterialX
    • Editor Sync
    • Responsive 3D Webdesign
  • Troubleshooting

    • डीबग कैसे करें
    • प्रश्न और उत्तर (FAQ) 💡
    • Support and Community
  • Videos

    • Tutorials on Youtube
    • Interviews on Youtube
  • Scripting Overview

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

    • घटक बनाना और उपयोग करना
    • @serializable और अन्य डेकोरेटर्स
    • कंपोनेंट का स्वचालित जनरेशन
    • स्क्रिप्टिंग उदाहरण
    • Community Contributions
    • अतिरिक्त मॉड्यूल
  • Settings and APIs

    • <needle-engine> कॉन्फ़िगरेशन
    • needle.config.json
    • Needle Engine API
    • three.js API
Help
  • 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 no Editor
    • Needle Engine on your Website
    • Needle Cloud
    • Custom integrations
    • Support and Community
  • Core Concepts

    • Needle Engine प्रोजेक्ट की संरचना
    • Everywhere Actions
    • glTF में एसेट एक्सपोर्ट करना
    • फ़्रेमवर्क, बंडलर्स, HTML
    • स्थानीय डिवाइसों पर परीक्षण
    • डिप्लॉयमेंट और ऑप्टिमाइजेशन
  • Scripting

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

    • VR और AR (WebXR)
    • Image Tracking (WebXR)
    • नेटवर्किंग
    • MaterialX
    • Editor Sync
    • Responsive 3D Webdesign
  • Troubleshooting

    • डीबग कैसे करें
    • प्रश्न और उत्तर (FAQ) 💡
    • Support and Community
  • Reference

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

निम्न तालिका में उपलब्ध Typescript डेकोरेटर्स शामिल हैं जो Needle Engine प्रदान करता है।

आप उन्हें Attributes on steroids (यदि आप C# से परिचित हैं) के रूप में सोच सकते हैं - अतिरिक्त कार्यक्षमता प्रदान करने के लिए उन्हें Typescript में क्लासेस, फ़ील्ड्स या मेथड्स में जोड़ा जा सकता है।

फ़ील्ड और प्रॉपर्टी डेकोरेटर्स
@serializable()एक्सपोज़्ड / सीरियलाइज़्ड फ़ील्ड्स में जोड़ें। इसका उपयोग तब किया जाता है जब Unity या Blender से कॉम्पोनेंट्स के साथ एक्सपोर्ट की गई glTF फ़ाइलें लोड की जाती हैं।
@syncField()वैल्यू के बदलने पर उसे नेटवर्क करने के लिए किसी फ़ील्ड में जोड़ें। जब फ़ील्ड बदलता है तो कॉल करने के लिए आप एक मेथड पास कर सकते हैं।
@validate()जब भी वैल्यू बदलती है तो कॉम्पोनेंट इवेंट मेथड onValidate में कॉलबैक प्राप्त करने के लिए जोड़ें। यह Unity के onValidate के समान व्यवहार करता है।
मेथड डेकोरेटर्स
@prefix(<type>) (experimental)अन्य कॉम्पोनेंट्स में आसानी से कस्टम कोड इंजेक्ट करने के लिए उपयोग किया जा सकता है। वैकल्पिक रूप से, मूल मेथड को एग्जीक्यूट होने से रोकने के लिए false वापस करें। नीचे उदाहरण देखें
क्लास डेकोरेटर्स
@registerTypeकोई आर्गुमेंट नहीं। Needle Engine टाइप्स पर रजिस्टर होने और हॉट रीलोडिंग सपोर्ट सक्षम करने के लिए किसी कस्टम कॉम्पोनेंट क्लास में जोड़ा जा सकता है।

उदाहरण

सीरियलाइज़ेबल

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

export class SomeComponentType extends Behaviour {}

export class ButtonObject extends Behaviour {
    // आप प्रकार को छोड़ सकते हैं यदि यह एक प्रिमिटिव है
    // जैसे Number, String या Bool
    @serializable()
    myNumber: number = 42;

    // अन्यथा उस कंक्रीट प्रकार को जोड़ें जिसे आप सीरियलाइज़ करना चाहते हैं
    @serializable(EventList)
    onClick?: EventList;

    @serializable(SomeComponentType)
    myComponent?: SomeComponentType;

    // ध्यान दें कि एरे के लिए आप अभी भी कंक्रीट प्रकार जोड़ते हैं (एरे नहीं)
    @serializable(Object3D)
    myObjects?: Object3D[];
}

सिंकफ़ील्ड

@syncField डेकोरेटर का उपयोग एक ही नेटवर्किंग रूम से कनेक्टेड सभी उपयोगकर्ताओं (आपकी वेबसाइट के विज़िटर) के लिए आपके कॉम्पोनेंट्स की प्रॉपर्टीज़ को स्वचालित रूप से नेटवर्क करने के लिए किया जा सकता है। यह वैकल्पिक रूप से एक कॉलबैक फ़ंक्शन ले सकता है जिसे वैल्यू बदलने पर इन्वोक किया जाएगा।

  • यह सूचित करने के लिए कि एक रेफरेंस वैल्यू (जैसे कोई ऑब्जेक्ट या एरे) बदल गई है, आपको फ़ील्ड को फिर से असाइन करने की आवश्यकता है। जैसे: myField = myField
  • कॉलबैक फ़ंक्शन एरो फ़ंक्शन नहीं हो सकता है (जैसे MyScript.prototype.onNumberChanged onNumberChanged() { ... } के लिए काम करता है लेकिन myNumberChanged = () => { ... } के लिए नहीं करता है)
import { Behaviour, serializable, syncField } from "@needle-tools/engine";

export class MyScript extends Behaviour {

    @syncField(MyScript.prototype.onNumberChanged)
    @serializable()
    myNumber: number = 42;

    private onNumberChanged(newValue: number, oldValue: number){
        console.log("नंबर बदल गया ", oldValue, "से", newValue)
    }
}

वैलिडेट

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

export class MyScript extends Behaviour {

    @validate()
    @serializable()
    myNumber?: number;

    start() { setInterval(() => this.myNumber = Math.random(), 1000) }

    onValidate(fieldName: string) {
        console.log("वैलिडेट करें", fieldName, this.myNumber);
    }
}

प्रीफ़िक्स

लाइव उदाहरण

import { Camera, prefix } from "@needle-tools/engine";
class YourClass {
    @prefix(Camera) // < यह वह प्रकार है जिसमें वह मेथड है जिसे आप बदलना चाहते हैं
    awake() { // < यह वह मेथड नाम है जिसे आप बदलना चाहते हैं

        // यह अब Camera.awake मेथड के चलने से पहले कॉल किया जाता है
        // नोट: `this` अब Camera इंस्टेंस को संदर्भित करता है न कि `YourClass` को। यह आपको कॉम्पोनेंट की इंटरनल स्टेट तक भी पहुंचने की अनुमति देता है।
        console.log("नमस्ते कैमरा:", this)
        // यदि आप डिफ़ॉल्ट व्यवहार को रोकना चाहते हैं तो वैकल्पिक रूप से false वापस करें
    }
}

पेज का अनुवाद AI द्वारा स्वचालित रूप से किया गया है

Suggest changes
Last Updated: 11/6/25, 12:25 pm
Prev
<needle-engine> कॉन्फ़िगरेशन