|
9 | 9 | "name": "Raycaster3D",
|
10 | 10 | "previewIconUrl": "https://asset-resources.gdevelop.io/public-resources/Icons/8419f46b76bce482c14b4c03b4141a64d457e4cdc92686f3470381f5d2694abd_ray-start-arrow.svg",
|
11 | 11 | "shortDescription": "Find 3D objects that cross a line.",
|
12 |
| - "version": "0.1.6", |
| 12 | + "version": "0.1.7", |
13 | 13 | "description": [
|
14 | 14 | "It can be useful to:",
|
15 | 15 | "- Find 3D objects under the pointer",
|
|
201 | 201 | " _doRecast(objectsLists, objects) {",
|
202 | 202 | " const raycastResults = this.raycastResults;",
|
203 | 203 | " let distanceMin = Number.MAX_VALUE;",
|
| 204 | + " /** @type {gdjs.RuntimeObject | null} */", |
204 | 205 | " let nearestObject = null;",
|
| 206 | + " /** @type {THREE.Object3D | null} */", |
| 207 | + " let nearestThreeObject = null;", |
205 | 208 | " for (const object of objects) {",
|
206 | 209 | " raycastResults.length = 0;",
|
207 | 210 | " const threeObject = object.get3DRendererObject();",
|
|
218 | 221 | " this.lastPositionY = -raycastResult.point.y;",
|
219 | 222 | " this.lastPositionZ = raycastResult.point.z;",
|
220 | 223 | " this.lastNormal.copy(raycastResult.normal);",
|
| 224 | + " nearestThreeObject = raycastResult.object;", |
221 | 225 | " }",
|
222 | 226 | " }",
|
223 | 227 | " if (!nearestObject) {",
|
224 | 228 | " return false;",
|
225 | 229 | " }",
|
226 |
| - " this.lastNormal.transformDirection(nearestObject.get3DRendererObject().matrixWorld);", |
| 230 | + " this.lastNormal.transformDirection(nearestThreeObject.matrixWorld);", |
227 | 231 | " this.lastNormal.y = -this.lastNormal.y;",
|
228 | 232 | " raycastResults.length = 0;",
|
229 | 233 | " gdjs.evtTools.object.pickOnly(",
|
|
0 commit comments