aframe
Raycasters (घटक)
खोज…
परिचय
रेकास्टर घटक एक रेनकेस्टर के साथ सामान्य चौराहे का परीक्षण करता है। रेकास्टिंग एक मूल से एक दिशा की ओर एक रेखा का विस्तार करने की विधि है, और यह जांचना कि क्या वह रेखा अन्य प्रवेशों के साथ प्रतिच्छेद करती है। रेकास्टर घटक तीन.जेएस रेकास्टर के शीर्ष पर एक आवरण है। यह वस्तुओं की एक सूची के खिलाफ एक निश्चित अंतराल पर चौराहों की जांच करता है, और जब यह चौराहों या चौराहों की सफाई का पता लगाता है (तो जब रेस्कस्टर अब नहीं है, तो इकाई पर घटनाओं का उत्सर्जन करेगा।
पैरामीटर
पैरामीटर | विवरण |
---|---|
दूर | अधिकतम दूरी जिसके तहत परिणामी संस्थाएं वापस कर दी जाती हैं। फिर कम नहीं हो सकता। |
मध्यान्तर | प्रत्येक चौराहे परीक्षण के बीच प्रतीक्षा करने के लिए मिलीसेकंड की संख्या। तेज अपडेट के लिए कम संख्या बेहतर है। प्रदर्शन के लिए अधिक संख्या बेहतर है। |
पास में | न्यूनतम दूरी, जिस पर प्रतिपूर्ति करने वाली इकाइयाँ वापस कर दी जाती हैं। 0 से कम नहीं हो सकता। |
वस्तुओं | चौराहे के लिए कौन सी वस्तुओं का परीक्षण करना है, इसका चयन करने के लिए क्वेरी चयनकर्ता। यदि निर्दिष्ट नहीं किया गया है, तो सभी संस्थाओं का परीक्षण किया जाएगा। |
पुनरावर्ती | यदि सेट की गई वस्तुओं के सभी बच्चों की जाँच करता है। एल्स केवल रूट ऑब्जेक्ट्स के साथ चौराहों की जांच करता है। |
टिप्पणियों
आयोजन
नाम | विवरण |
---|---|
raycaster-intersected | प्रतिच्छेदित इकाई पर उत्सर्जित। एंटिटी एक रेस्क्यूस्टर के साथ प्रतिच्छेद कर रहा है। ईवेंट विस्तार में el, raycasting निकाय और चौराहे होंगे, एक ऑब्जेक्ट जिसमें चौराहे के बारे में विस्तृत डेटा होगा। |
raycaster-intersected-cleared | प्रतिच्छेदित इकाई पर उत्सर्जित। इकाई अब एक रेस्क्यूस्टर के साथ प्रतिच्छेद नहीं कर रही है। ईवेंट विस्तार में el, raycasting एंटिटी होगी। |
raycaster-intersection | रेकास्टिंग इकाई पर उत्सर्जित। रेकास्टर एक या एक से अधिक संस्थाओं के साथ प्रतिच्छेद कर रहा है। ईवेंट विवरण में els, इंटरसेक्टेड संस्थाओं के साथ एक सरणी, और चौराहों, चौराहों के बारे में विस्तृत डेटा वाली वस्तुओं की एक सरणी होगी। |
raycaster-intersection-cleared | रेकास्टिंग इकाई पर उत्सर्जित। Raycaster अब एक इकाई के साथ प्रतिच्छेद नहीं कर रहा है। ईवेंट विस्तार में पूर्व में प्रतिच्छेदित इकाई el होगी। |
सदस्य
सदस्य | विवरण |
---|---|
intersectedEls | वर्तमान में संस्थाएं रैस्क्यूस्टर को इंटरसेप्ट करती हैं। |
objects | तीन.js वस्तुओं चौराहों के लिए परीक्षण करने के लिए। यदि दृश्य संपत्ति निर्दिष्ट नहीं है, तो दृश्य होगा। |
raycaster | तीन.जेएस रेकास्टर ऑब्जेक्ट। |
methode
तरीका | विवरण |
---|---|
refreshObjects | चौराहे के लिए परीक्षण करने के लिए वस्तुओं की संपत्ति के आधार पर वस्तुओं की सूची को ताज़ा करता है। |
रेकास्टर की उत्पत्ति और दिशा निर्धारित करना
रेकास्टर की एक उत्पत्ति है, जहां इसकी किरण शुरू होती है, और एक दिशा, जहां किरण जाती है।
रेकस्टर की उत्पत्ति रेकस्टर इकाई की स्थिति में है। हम रेकेस्टर इकाई की स्थिति घटक (या रेकास्टर इकाई की मूल संस्थाएं) को सेट करके रेकस्टर की उत्पत्ति को बदल सकते हैं।
रेकेस्टर की दिशा रेकास्टर इकाई के "सामने" में है (यानी, 0 0 -1, नकारात्मक Z- अक्ष पर)। हम रेकास्टर इकाई (या रेकास्टर इकाई की मूल संस्थाएं) के रोटेशन घटक को सेट करके रेकस्टर की दिशा बदल सकते हैं।
उदाहरण के लिए, यहाँ एक घुमाए गए बुलेट की लंबाई के साथ एक रेकस्टर लगाया जा रहा है:
<!-- Bullet, rotated to be parallel with the ground. -->
<a-entity id="bullet" geometry="primitive: cylinder; height: 0.1" rotation="-90 0 0">
<!-- Raycaster, targets enemies, made to be as long as the bullet, positioned to the start of the bullet, rotated to align with the bullet. -->
<a-entity raycaster="objects: .enemies; far: 0.1" position="0 -0.5 0" rotation="90 0 0"></a-entity>
</a-entity>
अंतरंगता के लिए परीक्षण करने के लिए श्वेत सूची
हम आम तौर पर चौराहों के लिए दृश्य में सब कुछ परीक्षण नहीं करना चाहते हैं (उदाहरण के लिए, टकराव या क्लिक के लिए)। चौराहे के परीक्षण के लिए संस्थाओं की संख्या को सीमित करने के लिए चयनात्मक चौराहे प्रदर्शन के लिए अच्छे हैं क्योंकि प्रतिच्छेदन परीक्षण एक ऑपरेशन है जो प्रति सेकंड 60 से अधिक बार चलेगा।
जिन संस्थाओं को हम चौराहे के लिए परीक्षण करना चाहते हैं, उन्हें चुनने या चुनने के लिए, हम वस्तुओं की संपत्ति का उपयोग कर सकते हैं। यदि इस संपत्ति को परिभाषित नहीं किया जाता है, तो रेकस्टर चौराहे के लिए दृश्य में प्रत्येक वस्तु का परीक्षण करेगा। ऑब्जेक्ट एक क्वेरी चयनकर्ता मान लेता है:
<a-entity raycaster="objects: .clickable" cursor></a-entity>
<a-entity class="clickable" geometry="primitive: box" position="1 0 0"></a-entity>
<a-entity class="not-clickable" geometry="primitive: sphere" position="-1 0 0"></a-entity>