Frameworks, Bundlers, HTML
Last updated
Last updated
Needle Engine एक वेब कंपोनेंट के तौर पर बनाया गया है।
इसका मतलब है कि अपने प्रोजेक्ट में @needle-tools/engine
इंस्टॉल करें और <needle-engine src="path/to/your.glb">
को अपने वेब-प्रोजेक्ट में कहीं भी शामिल करें।
npm का उपयोग करके इंस्टॉल करें:npm i @needle-tools/engine
हमारे डिफ़ॉल्ट Vite आधारित प्रोजेक्ट टेम्पलेट के साथ, Needle Engine डिप्लॉयमेंट पर एक वेब ऐप में बंडल हो जाता है। यह छोटी फ़ाइलों, ट्री-शेकिंग (यूनिटी में कोड स्ट्रिपिंग के समान) और ऑप्टिमाइज़्ड लोड टाइम सुनिश्चित करता है। कई छोटी स्क्रिप्ट और कंपोनेंट डाउनलोड करने के बजाय, केवल एक या कुछ ही डाउनलोड होते हैं जिनमें न्यूनतम आवश्यक कोड होता है।
Vite (हमारा डिफ़ॉल्ट बंडलर) का एक अच्छा स्पष्टीकरण है कि वेब ऐप्स को बंडल क्यों किया जाना चाहिए:
Needle Engine फ्रेमवर्क के चयन के बारे में तटस्थ है। हमारा डिफ़ॉल्ट टेम्पलेट लोकप्रिय को बंडलर के रूप में उपयोग करता है। वहाँ से, आप vue, svelte, nuxt, react, react-three-fiber या अन्य फ्रेमवर्क जोड़ सकते हैं, और हमारे पास उनमें से कई के लिए सैंपल हैं। आप अन्य बंडलर भी इंटीग्रेट कर सकते हैं, या किसी का भी उपयोग नहीं कर सकते हैं - बस सादा HTML और Javascript।
यहाँ कुछ उदाहरण तकनीकी स्टैक दिए गए हैं जो संभव हैं और जिनके साथ हम Needle Engine का उपयोग करते हैं:
Vite + HTML — हमारे डिफ़ॉल्ट टेम्पलेट में यही उपयोग होता है!
Vite + Vue — वेबसाइट में यही उपयोग होता है! डाउनलोड करने के लिए एक सैंपल पाएं।
Vite + Svelte
Vite + SvelteKit
Vite + React — यूनिटी इंटीग्रेशन के साथ एक प्रायोगिक टेम्पलेट आता है जिसे आप प्रोजेक्ट जेनरेट करते समय चुन सकते हैं!
react-three-fiber — यूनिटी इंटीग्रेशन के साथ एक प्रायोगिक टेम्पलेट आता है जिसे आप प्रोजेक्ट जेनरेट करते समय चुन सकते हैं!
Vercel & Nextjs — एक पाएं।
CDN without any bundler — एक कोड उदाहरण पाएं।
संक्षेप में: हम वर्तमान में एक न्यूनतम vite टेम्पलेट प्रदान कर रहे हैं, लेकिन आप इसे बढ़ा सकते हैं या अन्य फ्रेमवर्क पर स्विच कर सकते हैं - हमें बताएं कि आप क्या और कैसे बनाते हैं, और हम आपके उपयोग के मामले के लिए अनुभव को कैसे बेहतर बना सकते हैं या एक उदाहरण प्रदान कर सकते हैं!
:::details मैं यूनिटी में एक कस्टम प्रोजेक्ट टेम्पलेट कैसे बनाऊं?
आप अन्य बंडलर, बिल्ड सिस्टम, या किसी का भी उपयोग न करने के लिए अपने स्वयं के वेब प्रोजेक्ट टेम्पलेट बना और साझा कर सकते हैं।
एक नया टेम्पलेट बनाएं
उस फ़ोल्डर में एक ProjectTemplate जोड़ने के लिए Create/Needle Engine/Project Template
चुनें जिसे आप टेम्पलेट के रूप में उपयोग करना चाहते हैं।
हो गया! यह इतना सरल है।
निर्भरताएँ यूनिटी से आती हैं जब प्रोजेक्ट में NpmDef होता है (इसलिए जब आपका प्रोजेक्ट स्थानीय संदर्भों का उपयोग करता है)। आप अपने पैकेजों को npm पर भी प्रकाशित कर सकते हैं और संस्करण संख्या के माध्यम से उनका संदर्भ दे सकते हैं। :::
:::details Rapier physics engine को कैसे हटाएं? (कुल बंडल आकार को ~2MB (~600KB gzipping करने पर) कम करना)
विकल्प 1: needlePlugins कॉन्फ़िगरेशन के माध्यम से:
अपने vite.config में useRapier
को false
पर सेट करें: needlePlugins(command, needleConfig, { useRapier: false }),
विकल्प 2: vite.define कॉन्फ़िगरेशन के माध्यम से:NEEDLE_USE_RAPIER
को false
के साथ परिभाषित करें
विकल्प 3: .env के माध्यम से
अपने वेब प्रोजेक्ट में एक .env
फ़ाइल बनाएं और VITE_NEEDLE_USE_RAPIER=false
जोड़ें
:::
हम अपने vite टेम्पलेट से सीधे Progressive Web App (PWA) बनाना आसानी से सपोर्ट करते हैं। PWA वेब एप्लिकेशन होते हैं जो नियमित वेब पेज या वेबसाइटों की तरह लोड होते हैं लेकिन उपयोगकर्ता को ऑफ़लाइन काम करने, पुश नोटिफिकेशन और डिवाइस हार्डवेयर एक्सेस जैसी कार्यक्षमता प्रदान कर सकते हैं जो पारंपरिक रूप से केवल मूल मोबाइल एप्लिकेशन के लिए उपलब्ध थी।
डिफ़ॉल्ट रूप से, Needle के साथ बनाए गए PWA में ऑफ़लाइन समर्थन होता है, और यदि आप अपने ऐप का नया संस्करण प्रकाशित करते हैं तो वे वैकल्पिक रूप से स्वचालित रूप से रीफ़्रेश हो सकते हैं।
नीचे दिखाए अनुसार vite.config.js
को संशोधित करें। सुनिश्चित करें कि आप needlePlugins
और VitePWA
दोनों को समान pwaOptions
ऑब्जेक्ट पास करें।
अपने PWA का परीक्षण करने के लिए, पृष्ठ को डिप्लॉय करें, उदाहरण के लिए DeployToFTP
कंपोनेंट का उपयोग करके।
फिर, डिप्लॉय किए गए पृष्ठ को ब्राउज़र में खोलें और जांचें कि PWA सुविधाएँ अपेक्षा के अनुसार काम करती हैं या नहीं:
ऐप इंस्टाल करने योग्य के रूप में दिखाई देता है
ऐप ऑफ़लाइन काम करता है
PWA संसाधन कैश करने और ऑफ़लाइन समर्थन प्रदान करने के लिए Service Workers का उपयोग करते हैं। विकास के दौरान Service Workers का उपयोग करना कुछ हद तक कठिन होता है, और आमतौर पर वे केवल बिल्ड के लिए सक्षम होते हैं (उदाहरण के लिए जब आप DeployTo...
कंपोनेंट का उपयोग करते हैं)।
आप अपनी vite.config.js
में विकल्पों ऑब्जेक्ट में निम्नलिखित जोड़कर विकास के लिए PWA समर्थन सक्षम कर सकते हैं।
कृपया ध्यान दें कि विकास मोड में PWA ऑफ़लाइन उपयोग का समर्थन नहीं करते हैं - इसे आज़माने से अप्रत्याशित व्यवहार हो सकता है।
वेबसाइटें आमतौर पर पेज रीफ़्रेश पर नई या अपडेट की गई सामग्री दिखाती हैं।
कुछ स्थितियों में, आप चाहते हैं कि पृष्ठ स्वचालित रूप से रीफ़्रेश और रीलोड हो जाए जब कोई नया संस्करण प्रकाशित हो - जैसे कि संग्रहालय, व्यापार शो, सार्वजनिक प्रदर्शन, या अन्य लंबे समय तक चलने वाले परिदृश्यों में।
स्वचालित अपडेट सक्षम करने के लिए, pwaOptions ऑब्जेक्ट में updateInterval
प्रॉपर्टी को एक अवधि (मिलीसेकंड में) पर सेट करें जिसमें ऐप को अपडेट के लिए जांच करनी चाहिए। यदि कोई अपडेट पाया जाता है, तो पृष्ठ स्वचालित रूप से रीलोड हो जाएगा।
आंशिक कैशिंग, कस्टम सर्विस वर्कर या विभिन्न अपडेट रणनीतियों जैसी जटिल आवश्यकताओं के लिए, आप needlePlugins
से { pwa: pwaOptions }
विकल्प हटा सकते हैं और Vite PWA plugin के माध्यम से सीधे PWA कार्यक्षमता जोड़ सकते हैं।
needle-engine की लोडिंग दिखावट लाइट या डार्क स्किन का उपयोग कर सकती है।
दिखावट बदलने के लिए <needle-engine>
वेब कंपोनेंट पर loading-style
विशेषता का उपयोग करें।
विकल्प light
और dark
(डिफ़ॉल्ट) हैं:
<needle-engine loading-style="light"></needle-engine>
यह पृष्ठ AI का उपयोग करके स्वचालित रूप से अनुवादित किया गया है।
:::tip
कुछ फ्रेमवर्क को needle.config.json
में कस्टम सेटिंग्स की आवश्यकता होती है। अधिक जानकारी पाएं। आमतौर पर, baseUrl
सेट करने की आवश्यकता होती है।
:::
Tree shaking वेब एप्लिकेशन के बंडलिंग के संबंध में एक सामान्य अभ्यास को संदर्भित करता है ()। इसका मतलब है कि आपके कोड में उपयोग नहीं किए गए कोड पथ और सुविधाओं को फ़ाइल का आकार कम करने के लिए अंतिम बंडल किए गए javascript फ़ाइल(फ़ाइलों) से हटा दिया जाएगा। Needle Engine में शामिल सुविधाओं के बारे में नीचे देखें और उन्हें हटा दें:
विकल्प 4: यूनिटी कंपोनेंट के माध्यम से
अपने सीन में Needle Engine Modules
कंपोनेंट जोड़ें और Physics Engine
को None
पर सेट करें
अपने वेब प्रोजेक्ट में इंस्टॉल करें: npm install vite-plugin-pwa --save-dev
:::tip डिफ़ॉल्ट रूप से सभी एसेट कैश किए जाते हैं ध्यान दें कि डिफ़ॉल्ट रूप से, आपके बिल्ड फ़ोल्डर में सभी एसेट PWA precache में जोड़े जाते हैं - कई डायनामिक एसेट वाले बड़े एप्लिकेशन के लिए, यह वह नहीं हो सकता है जो आप चाहते हैं (कल्पना कीजिए कि YouTube PWA उपयोगकर्ता द्वारा ऐप खोलने के बाद सभी वीडियो कैश करता है!)। इस व्यवहार को कस्टमाइज़ करने के तरीके के लिए देखें। :::
ऐप को द्वारा ऑफ़लाइन-सक्षम PWA के रूप में पहचाना जाता है
:::tip आवधिक रीलोड और उपयोगकर्ता डेटा ऐसे एप्लिकेशन में स्वचालित रीलोड का उपयोग करने की अनुशंसा नहीं की जाती है जहां उपयोगकर्ता फॉर्म या अन्य डेटा के साथ इंटरैक्ट कर रहे हों जो रीलोड पर खो सकता है। ऐसे एप्लिकेशन के लिए, रीलोड प्रॉम्प्ट दिखाने की अनुशंसा की जाती है। रीलोड के बजाय रीलोड प्रॉम्प्ट को कैसे लागू करें, इस बारे में अधिक जानकारी के लिए देखें। :::
चूंकि Needle पर्दे के पीछे का उपयोग करता है, आप इसके द्वारा प्रदान किए गए सभी विकल्पों और हुक का उपयोग कर सकते हैं। उदाहरण के लिए, आप एक कस्टम ऐप शीर्षक या थीम रंग के साथ आंशिक मैनिफ़ेस्ट प्रदान कर सकते हैं:
आपके द्वारा उजागर किया गया कोड बंडलिंग के बाद JavaScript से एक्सेस किया जा सकता है। यह दर्शक और अन्य एप्लिकेशन बनाने की अनुमति देता है जहां संपादन समय में ज्ञात डेटा और रनटाइम में ही ज्ञात डेटा (जैसे गतिशील रूप से लोड की गई फ़ाइलें, उपयोगकर्ता द्वारा जेनरेट की गई सामग्री) के बीच विभाजन होता है। इंजन के बाहर नियमित javascript से कंपोनेंट एक्सेस करने के लिए कृपया देखें।
में Loading Display सेक्शन देखें।
कृपया में Loading Display सेक्शन देखें।