उत्कृष्ट सिम.जेएस और थ्री.जेएस पुस्तकालयों का उपयोग कर वेबजीएल प्रोजेक्ट पर काम करते समय, मैंने अगली समस्या पर ठोकर खाई है :TypeError ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में कोई तरीका नहीं है SubSelf, TypeError ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में कोई विधि intersectsPlane
कहीं रास्ते में, यह THREE.Ray के लिए अगले निर्माता का उपयोग करता है:
var ray = new THREE.Ray(this.camera.position, vector.subSelf(this.camera.position).normalize());
जहां वेक्टर Vector3 है,
जो निम्न त्रुटि से चलाता है:
TypeError ऑब्जेक्ट [ऑब्जेक्ट ऑब्जेक्ट] में कोई विधि उप-स्वयं नहीं है।
मैं Three.js से प्रलेखन कि मैं उपयोग कर रहा हूँ और vector3 पर विधि है कि संपर्क किया जाँच की सबसे यह एक
.sub(v) Vector3
मैं इस बदलते कोशिश की है और एक नया त्रुटि इस कॉल पर दिखाई देता है :
var intersects = ray.intersectScene(this.scene);
जो फिर एक त्रुटि फेंकता है, क्योंकि जब मैं जाँच, रे एक intersectsPlane विधि
असल में मुझे पहली बार गलत लगता है, मूल कोड किरण है। इंटरसेक्टसेन, जो अस्तित्व में नहीं है और मैंने इसे intersectPlane के साथ बदल दिया है जो Ray.js में मौजूद एकमात्र अंतर है, जो एक नया "स्पॉट डॉट कॉल नहीं कर सकता undefine "त्रुटि – maxandonuts
तीन.जेएस माइग्रेशन विकी के अनुसार, intersectScene अब मौजूद नहीं है और यह intersectObjects (सरणी) का उपयोग करने की अनुशंसा करता है, कोई भी विचार जो इस विधि का मालिक है? – maxandonuts
@MaxRodriguezCollada आप 'रे' नहीं चाहते हैं, वे अब जटिल टक्कर नहीं करते हैं। 'रे' अब पूरी तरह से गणितीय निर्माण है, लेकिन _casting_ किरण अब 'रेकास्टर' नामक एक नई कक्षा द्वारा की जाती है। https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js –