Podczas pracy nad projektem WebGL przy użyciu doskonałych bibliotek Sim.js i Three.js natknąłem się na następny problem :Obiekt TypeError [obiekt obiektowy] nie ma metody SubSelf, TypeError Obiekt [object object] nie ma żadnej metody przecinającej port
Gdzieś po drodze, to używa następnego konstruktor THREE.Ray:
var ray = new THREE.Ray(this.camera.position, vector.subSelf(this.camera.position).normalize());
gdzie wektor jest Vector3,
który wyzwala się następujący błąd:
Obiekt TypeError [obiekt obiektu] nie ma podelementu metody.
sprawdziłem dokumentację z Three.js że używam i metodę na Vector3 że zbliżył się najbardziej ten jest
.sub(v) Vector3
próbowałem zmieniając to i nowy błąd pojawia się na tej rozmowy :
var intersects = ray.intersectScene(this.scene);
który ponownie generuje błąd, ponieważ kiedy sprawdzasz, ray nie ma metody intersectsPlane
Właściwie to mam problem za pierwszym razem, oryginalny kod to ray.IntersectScene, który nie istnieje i zastąpiłem go intersectPlane będącym jedynym przecięciem istniejącym w Ray.js, który rozwija nową metodę "nie można wywołać kropka" nieokreślonego "error – maxandonuts
zgodnie z wiki migracji three.js, intersectScene już nie istnieje i zaleca użycie intersectObjects (array), jakiegokolwiek pojęcia, kto jest właścicielem tej metody? – maxandonuts
@MaxRodriguezCollada Nie chcesz "Ray", nie robią już skomplikowanej kolizji. 'Ray' jest teraz konstrukcją czysto matematyczną, ale _casting_ promień jest teraz wykonywany przez nową klasę zwaną' Raycaster'. https://github.com/mrdoob/three.js/blob/master/src/core/Raycaster.js –