2013-03-04 13 views
7

उत्कृष्ट सिम.जेएस और थ्री.जेएस पुस्तकालयों का उपयोग कर वेबजीएल प्रोजेक्ट पर काम करते समय, मैंने अगली समस्या पर ठोकर खाई है :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 विधि

उत्तर

14

मेरा मानना ​​है कि Three.js एपीआई एक समय पहले बदला नहीं है।

Vector3subSelf()is now simply sub(), जैसा कि आपने पाया था।

और Ray के intersectsPlane()looks like it should be intersectPlane()

यदि आप इसके बजाय जटिल दृश्य चौराहे, you probably want to use Raycaster चाहते हैं। डॉक्स: http://mrdoob.github.com/three.js/docs/56/#Reference/Core/Raycaster

तीन.जेएस दस्तावेज कभी भी सबसे अच्छी बात नहीं है ... हालांकि, inspecting the source code से बहुत सारी अंतर्दृष्टि प्राप्त की जा सकती है।

+0

असल में मुझे पहली बार गलत लगता है, मूल कोड किरण है। इंटरसेक्टसेन, जो अस्तित्व में नहीं है और मैंने इसे intersectPlane के साथ बदल दिया है जो Ray.js में मौजूद एकमात्र अंतर है, जो एक नया "स्पॉट डॉट कॉल नहीं कर सकता undefine "त्रुटि – maxandonuts

+0

तीन.जेएस माइग्रेशन विकी के अनुसार, intersectScene अब मौजूद नहीं है और यह intersectObjects (सरणी) का उपयोग करने की अनुशंसा करता है, कोई भी विचार जो इस विधि का मालिक है? – maxandonuts

+1

@MaxRodriguezCollada आप 'रे' नहीं चाहते हैं, वे अब जटिल टक्कर नहीं करते हैं। 'रे' अब पूरी तरह से गणितीय निर्माण है, लेकिन _casting_ किरण अब 'रेकास्टर' नामक एक नई कक्षा द्वारा की जाती है। https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js –

संबंधित मुद्दे