@needle-tools/engine 3.28.4-beta → 3.28.6-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/dist/needle-engine.js +7325 -7315
  3. package/dist/needle-engine.light.js +6991 -6981
  4. package/dist/needle-engine.light.min.js +217 -217
  5. package/dist/needle-engine.light.umd.cjs +216 -216
  6. package/dist/needle-engine.min.js +218 -218
  7. package/dist/needle-engine.umd.cjs +217 -217
  8. package/lib/engine/engine_gameobject.js +1 -0
  9. package/lib/engine/engine_gameobject.js.map +1 -1
  10. package/lib/engine/engine_gizmos.js +1 -0
  11. package/lib/engine/engine_gizmos.js.map +1 -1
  12. package/lib/engine/engine_hot_reload.js +2 -2
  13. package/lib/engine/engine_hot_reload.js.map +1 -1
  14. package/lib/engine/engine_physics_rapier.js +7 -3
  15. package/lib/engine/engine_physics_rapier.js.map +1 -1
  16. package/lib/engine/engine_serialization_builtin_serializer.d.ts +1 -0
  17. package/lib/engine/engine_serialization_builtin_serializer.js +24 -8
  18. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  19. package/lib/engine/engine_three_utils.d.ts +1 -0
  20. package/lib/engine/engine_three_utils.js +11 -0
  21. package/lib/engine/engine_three_utils.js.map +1 -1
  22. package/lib/engine/engine_types.d.ts +27 -7
  23. package/lib/engine/engine_types.js +8 -4
  24. package/lib/engine/engine_types.js.map +1 -1
  25. package/lib/engine-components/Animator.d.ts +2 -1
  26. package/lib/engine-components/Animator.js +33 -6
  27. package/lib/engine-components/Animator.js.map +1 -1
  28. package/lib/engine-components/RigidBody.js +2 -0
  29. package/lib/engine-components/RigidBody.js.map +1 -1
  30. package/lib/engine-components/ui/EventSystem.js +30 -36
  31. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  32. package/package.json +1 -1
  33. package/plugins/vite/imports-logger.js +2 -1
  34. package/src/engine/codegen/register_types.ts +2 -2
  35. package/src/engine/engine_gameobject.ts +1 -0
  36. package/src/engine/engine_gizmos.ts +1 -0
  37. package/src/engine/engine_hot_reload.ts +2 -2
  38. package/src/engine/engine_physics_rapier.ts +5 -3
  39. package/src/engine/engine_serialization_builtin_serializer.ts +27 -9
  40. package/src/engine/engine_three_utils.ts +11 -0
  41. package/src/engine/engine_types.ts +31 -31
  42. package/src/engine-components/Animator.ts +27 -9
  43. package/src/engine-components/RigidBody.ts +1 -0
  44. package/src/engine-components/ui/EventSystem.ts +34 -36
@@ -1 +1 @@
1
- {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSystem.js","sourceRoot":"","sources":["../../../src/engine-components/ui/EventSystem.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@needle-tools/engine",
3
- "version": "3.28.4-beta",
3
+ "version": "3.28.6-beta",
4
4
  "description": "Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in",
5
5
  "main": "dist/needle-engine.umd.cjs",
6
6
  "type": "module",
@@ -29,7 +29,8 @@ export const needleImportsLogger = (command, config, userSettings) => {
29
29
 
30
30
  // to make this work properly we need to resolve the paths all to absolute paths
31
31
  // assuming that id is relative to importer
32
- id = path.resolve(path.dirname(importer), id);
32
+ if (importer)
33
+ id = path.resolve(path.dirname(importer), id);
33
34
 
34
35
  if (!graph.allNodes.has(id)) {
35
36
  graph.allNodes.set(id, {
@@ -1,5 +1,5 @@
1
1
  import { TypeStore } from "./../engine_typestore.js"
2
-
2
+
3
3
  // Import types
4
4
  import { __Ignore } from "../../engine-components/codegen/components.js";
5
5
  import { ActionBuilder } from "../../engine-components/export/usdz/extensions/behavior/BehavioursBuilder.js";
@@ -219,7 +219,7 @@ import { XRGrabModel } from "../../engine-components/webxr/WebXRGrabRendering.js
219
219
  import { XRGrabRendering } from "../../engine-components/webxr/WebXRGrabRendering.js";
220
220
  import { XRRig } from "../../engine-components/webxr/WebXRRig.js";
221
221
  import { XRState } from "../../engine-components/XRFlag.js";
222
-
222
+
223
223
  // Register types
224
224
  TypeStore.add("__Ignore", __Ignore);
225
225
  TypeStore.add("ActionBuilder", ActionBuilder);
@@ -113,6 +113,7 @@ export function destroy(instance: Object3D | Component, recursive: boolean = tru
113
113
  internalDestroy(instance, recursive, dispose, true, allComponents);
114
114
  for (const comp of allComponents) {
115
115
  comp.gameObject = null!;
116
+ //@ts-ignore
116
117
  comp.context = null;
117
118
  }
118
119
  }
@@ -273,6 +273,7 @@ class Internal {
273
273
  this.contextBeforeRenderCallbacks.set(context, cb);
274
274
  context.pre_render_callbacks.push(cb);
275
275
  }
276
+ object.renderOrder = 999999;
276
277
  object.layers.disableAll();
277
278
  object.layers.enable(2);
278
279
  object[$cacheSymbol] = cache;
@@ -133,7 +133,7 @@ export function applyHMRChanges(newModule): boolean {
133
133
  const active = isComponent ? componentInstance.activeAndEnabled : true;
134
134
  const context = isComponent ? componentInstance.context : undefined;
135
135
  try {
136
- if (isComponent) {
136
+ if (isComponent && context) {
137
137
  removeScriptFromContext(componentInstance, context);
138
138
  }
139
139
  if (isComponent && active) {
@@ -170,7 +170,7 @@ export function applyHMRChanges(newModule): boolean {
170
170
  if (inst["onAfterHotReloadFields"]) inst["onAfterHotReloadFields"]();
171
171
  }
172
172
  finally {
173
- if (isComponent) {
173
+ if (isComponent && context) {
174
174
  addScriptToArrays(componentInstance, context);
175
175
  }
176
176
  if (isComponent && active) {
@@ -1309,6 +1309,7 @@ class PhysicsCollisionHandler {
1309
1309
  const c = active.component;
1310
1310
  if (c.destroyed) continue;
1311
1311
  if (c.activeAndEnabled && c.onCollisionStay) {
1312
+ if(active.collision.collider.destroyed) continue;
1312
1313
  const arg = active.collision;
1313
1314
  c.onCollisionStay(arg);
1314
1315
  }
@@ -1318,6 +1319,7 @@ class PhysicsCollisionHandler {
1318
1319
  if (c.destroyed) continue;
1319
1320
  if (c.activeAndEnabled && c.onTriggerStay) {
1320
1321
  const arg = active.otherCollider;
1322
+ if(arg.destroyed) continue;
1321
1323
  c.onTriggerStay(arg);
1322
1324
  }
1323
1325
  }
@@ -1328,7 +1330,7 @@ class PhysicsCollisionHandler {
1328
1330
  for (let i = 0; i < this.activeCollisions.length; i++) {
1329
1331
  const active = this.activeCollisions[i];
1330
1332
  const collider = active.collider;
1331
- if (collider.destroyed) {
1333
+ if (collider.destroyed || active.collision.collider.destroyed) {
1332
1334
  this.activeCollisions.splice(i, 1);
1333
1335
  i--;
1334
1336
  continue;
@@ -1346,7 +1348,7 @@ class PhysicsCollisionHandler {
1346
1348
  for (let i = 0; i < this.activeCollisionsStay.length; i++) {
1347
1349
  const active = this.activeCollisionsStay[i];
1348
1350
  const collider = active.collider;
1349
- if (collider.destroyed) {
1351
+ if (collider.destroyed || active.collision.collider.destroyed) {
1350
1352
  this.activeCollisionsStay.splice(i, 1);
1351
1353
  i--;
1352
1354
  continue;
@@ -1364,7 +1366,7 @@ class PhysicsCollisionHandler {
1364
1366
  for (let i = 0; i < this.activeTriggers.length; i++) {
1365
1367
  const active = this.activeTriggers[i];
1366
1368
  const collider = active.collider;
1367
- if (collider.destroyed) {
1369
+ if (collider.destroyed || active.otherCollider.destroyed) {
1368
1370
  this.activeTriggers.splice(i, 1);
1369
1371
  i--;
1370
1372
  continue;
@@ -215,6 +215,7 @@ declare type EventListCall = {
215
215
  method: string,
216
216
  target: string,
217
217
  argument?: any,
218
+ arguments?: Array<any>,
218
219
  enabled?: boolean,
219
220
  }
220
221
 
@@ -280,14 +281,22 @@ class EventListSerializer extends TypeSerializer {
280
281
  }
281
282
  }
282
283
 
283
- let args = call.argument;
284
- if (args !== undefined) {
285
- if (typeof args === "object") {
284
+ function deserializeArgument(arg: any) {
285
+ if (typeof arg === "object") {
286
286
  // Try to deserialize the call argument to either a object or a component reference
287
- let argRes = objectSerializer.onDeserialize(call.argument, context);
288
- if (!argRes) argRes = componentSerializer.onDeserialize(call.argument, context);
289
- if (argRes) args = argRes;
287
+ let argRes = objectSerializer.onDeserialize(arg, context);
288
+ if (!argRes) argRes = componentSerializer.onDeserialize(arg, context);
289
+ if (argRes) return argRes;
290
290
  }
291
+ return arg;
292
+ }
293
+
294
+ let args = call.argument;
295
+ if (args !== undefined) {
296
+ args = deserializeArgument(args);
297
+ }
298
+ else if (call.arguments !== undefined) {
299
+ args = call.arguments.map(deserializeArgument);
291
300
  }
292
301
 
293
302
  // This is the final method we pass to the call info (or undefined if the method couldnt be resolved)
@@ -326,8 +335,17 @@ class EventListSerializer extends TypeSerializer {
326
335
  return (...forwardedArgs) => {
327
336
  const method = target[methodName];
328
337
  if (typeof method === "function") {
329
- if (args !== undefined)
330
- method?.call(target, args);
338
+ if (args !== undefined) {
339
+ // we now have support for creating event methods with multiple arguments
340
+ // an argument can not be an array right now - so if we receive an array we assume it's the array of arguments that we want to call the method with
341
+ // this means ["test", true] will invoke the method like this: myFunction("test", true)
342
+ if (Array.isArray(args))
343
+ method?.call(target, ...args);
344
+ // in any other case (when we just have one argument) we just call the method with the argument
345
+ // we an not use ...args by default becaue that would break string arguments (it would then just use the first character)
346
+ else
347
+ method?.call(target, args);
348
+ }
331
349
  else // support invoking EventList with any number of arguments (if none were declared in unity)
332
350
  method?.call(target, ...forwardedArgs);
333
351
  }
@@ -357,7 +375,7 @@ export class RenderTextureSerializer extends TypeSerializer {
357
375
  colorSpace: THREE.LinearSRGBColorSpace,
358
376
  });
359
377
  rt.texture = tex;
360
-
378
+
361
379
  tex.isRenderTargetTexture = true;
362
380
  tex.flipY = true;
363
381
  tex.offset.y = 1;
@@ -236,6 +236,17 @@ export function logHierarchy(root: Object3D | null | undefined, collapsible: boo
236
236
  };
237
237
  }
238
238
 
239
+ export function getParentHierarchyPath(obj: Object3D): string {
240
+ let path = obj?.name || "";
241
+ if(!obj) return path;
242
+ let parent = obj.parent;
243
+ while (parent) {
244
+ path = parent.name + "/" + path;
245
+ parent = parent.parent;
246
+ }
247
+ return path;
248
+ }
249
+
239
250
 
240
251
  export function isAnimationAction(obj: object) {
241
252
  if (obj) {
@@ -101,10 +101,14 @@ export declare interface INeedleEngineComponent extends HTMLElement {
101
101
  }
102
102
 
103
103
  export declare interface IGameObject extends Object3D {
104
+
105
+ /** the object's unique identifier */
104
106
  guid: string | undefined;
105
107
 
108
+ /** if the object is enabled in the hierarchy (usually equivalent to `visible`) */
106
109
  activeSelf: boolean;
107
110
 
111
+ /** call to destroy this object including all components that are attached to it. Will destroy all children recursively */
108
112
  destroy(): void;
109
113
 
110
114
  /** NOTE: this is just a wrapper for devs coming from Unity. Please use this.gameObject instead. In Needle Engine this.gameObject is the same as this.gameObject.transform. See the tutorial link below for more information
@@ -113,14 +117,26 @@ export declare interface IGameObject extends Object3D {
113
117
  * */
114
118
  get transform(): IGameObject;
115
119
 
120
+ /** Add a new component to this object. Expects a component type (e.g. `addNewComponent(Animator)`) */
116
121
  addNewComponent<T>(type: Constructor<T>): T | null;
122
+ /** Remove a component from this object. Expected a component instance
123
+ * @returns the removed component (equal to the passed in component)
124
+ */
117
125
  removeComponent(comp: IComponent): IComponent;
126
+ /** Searches for a component type on this object. If no component of the searched type exists yet a new instance will be created and returned */
118
127
  getOrAddComponent<T>(typeName: Constructor<T> | null): T;
128
+ /** Tries to find a component of a type on this object.
129
+ * @returns the first instance of a component on this object that matches the passed in type or null if no component of this type (or a subtype) exists */
119
130
  getComponent<T>(type: Constructor<T>): T | null;
131
+ /** @returns all components of a certain type on this object */
120
132
  getComponents<T>(type: Constructor<T>, arr?: T[]): Array<T>;
133
+ /** Finds a component of a certain type on this object OR a child object if any exists */
121
134
  getComponentInChildren<T>(type: Constructor<T>): T | null;
135
+ /** Finds all components of a certain type on this object AND all children (recursively) */
122
136
  getComponentsInChildren<T>(type: Constructor<T>, arr?: T[]): Array<T>;
137
+ /** Finds a component of a certain type on this object OR a parent object if any exists */
123
138
  getComponentInParent<T>(type: Constructor<T>): T | null;
139
+ /** Finds all components of a certain type on this object AND all parents (recursively) */
124
140
  getComponentsInParent<T>(type: Constructor<T>, arr?: T[]): Array<T>;
125
141
 
126
142
  get worldPosition(): Vector3;
@@ -144,6 +160,7 @@ export interface IHasGuid {
144
160
  export interface IComponent extends IHasGuid {
145
161
  get isComponent(): boolean;
146
162
 
163
+ /** the object this component is attached to */
147
164
  gameObject: IGameObject;
148
165
  // guid: string;
149
166
  enabled: boolean;
@@ -327,7 +344,9 @@ export class ContactPoint {
327
344
  private readonly _normal: Vec3;
328
345
  private readonly _tangentVelocity: Vec3;
329
346
 
347
+ /** the distance of the collision point */
330
348
  readonly distance: number;
349
+ /** the impulse velocity */
331
350
  readonly impulse: number;
332
351
  readonly friction: number;
333
352
 
@@ -343,7 +362,7 @@ export class ContactPoint {
343
362
  return target.set(this._normal.x, this._normal.y, this._normal.z);
344
363
  }
345
364
 
346
- /** */
365
+ /** worldspace tangent */
347
366
  get tangentVelocity() {
348
367
  const target = contactsVectorBuffer.get();
349
368
  return target.set(this._tangentVelocity.x, this._tangentVelocity.y, this._tangentVelocity.z);
@@ -361,55 +380,36 @@ export class ContactPoint {
361
380
 
362
381
  /// all info in here must be readonly because the object is only created once per started collision
363
382
  export class Collision {
383
+
384
+ /** The contact points of this collision. Contains information about positions, normals, distance, friction, impulse... */
364
385
  readonly contacts: ContactPoint[];
365
386
 
366
- constructor(obj: Object3D, otherCollider: ICollider, contacts: ContactPoint[]) {
387
+ constructor(obj: IGameObject, otherCollider: ICollider, contacts: ContactPoint[]) {
367
388
  this.me = obj;
368
389
  this._collider = otherCollider;
369
390
  this._gameObject = otherCollider.gameObject;
370
391
  this.contacts = contacts;
371
392
  }
372
393
 
373
- readonly me: Object3D;
374
- private _collider: ICollider;
394
+ /** the gameobject this collision event belongs to (e.g. if onCollisionEnter is called then `me` is the same as `this.gameObject`) */
395
+ readonly me: IGameObject;
375
396
 
376
- /** the collider the collision happened with */
397
+ private _collider: ICollider;
398
+ /** the other collider the collision happened with */
377
399
  get collider(): ICollider {
378
400
  return this._collider;
379
401
  }
380
402
 
381
- /** the object the collision happened with */
382
- private _gameObject: Object3D;
383
- get gameObject(): Object3D {
403
+ private _gameObject: IGameObject;
404
+ /** the other object the collision happened with */
405
+ get gameObject(): IGameObject {
384
406
  return this._gameObject;
385
407
  }
386
408
 
387
- /** the rigidbody we hit, null if none attached */
409
+ /** the other rigidbody we hit, null if none attached */
388
410
  get rigidBody(): IRigidbody | null {
389
411
  return this.collider?.attachedRigidbody;
390
412
  }
391
-
392
-
393
-
394
- // private _normal?: Vector3;
395
- // get normal(): Vector3 {
396
- // if (!this._normal) {
397
- // const vec = this.collision.contact.ni;
398
- // this._normal = new Vector3(vec.x, vec.y, vec.z);
399
- // }
400
- // return this._normal;
401
- // }
402
-
403
-
404
- // private _point?: Vector3;
405
- // get point(): Vector3 {
406
- // if (!this._point) {
407
- // const c = this.collision.contact;
408
- // const point = c.bi.position.clone().vadd(c.ri);
409
- // this._point = new Vector3(point.x, point.y, point.z);
410
- // }
411
- // return this._point;
412
- // }
413
413
  }
414
414
 
415
415
  export type RaycastResult = null | { point: Vector3, collider: ICollider, normal?: Vector3 };
@@ -87,7 +87,8 @@ export class Animator extends Behaviour {
87
87
  /**@deprecated use setBool */
88
88
  SetBool(name: string | number, val: boolean) { this.setBool(name, val); }
89
89
  setBool(name: string | number, value: boolean) {
90
- if(this.runtimeAnimatorController?.getBool(name) !== value)
90
+ if (debug) console.log("setBool", name, value);
91
+ if (this.runtimeAnimatorController?.getBool(name) !== value)
91
92
  this._parametersAreDirty = true;
92
93
  this.runtimeAnimatorController?.setBool(name, value);
93
94
  }
@@ -95,55 +96,71 @@ export class Animator extends Behaviour {
95
96
  /**@deprecated use getBool */
96
97
  GetBool(name: string | number) { return this.getBool(name); }
97
98
  getBool(name: string | number): boolean {
98
- return this.runtimeAnimatorController?.getBool(name) ?? false;
99
+ const res = this.runtimeAnimatorController?.getBool(name) ?? false;
100
+ if (debug) console.log("getBool", name, res);
101
+ return res;
102
+ }
103
+
104
+ toggleBool(name: string | number) {
105
+ this.setBool(name, !this.getBool(name));
99
106
  }
100
107
 
101
108
  /**@deprecated use setFloat */
102
109
  SetFloat(name: string | number, val: number) { this.setFloat(name, val); }
103
110
  setFloat(name: string | number, val: number) {
104
- if(this.runtimeAnimatorController?.getFloat(name) !== val)
111
+ if (this.runtimeAnimatorController?.getFloat(name) !== val)
105
112
  this._parametersAreDirty = true;
113
+ if (debug) console.log("setFloat", name, val);
106
114
  this.runtimeAnimatorController?.setFloat(name, val);
107
115
  }
108
116
 
109
117
  /**@deprecated use getFloat */
110
118
  GetFloat(name: string | number) { return this.getFloat(name); }
111
119
  getFloat(name: string | number): number {
112
- return this.runtimeAnimatorController?.getFloat(name) ?? -1;
120
+ const res = this.runtimeAnimatorController?.getFloat(name) ?? -1;
121
+ if (debug) console.log("getFloat", name, res);
122
+ return res;
113
123
  }
114
124
 
115
125
  /**@deprecated use setInteger */
116
126
  SetInteger(name: string | number, val: number) { this.setInteger(name, val); }
117
127
  setInteger(name: string | number, val: number) {
118
- if(this.runtimeAnimatorController?.getInteger(name) !== val)
128
+ if (this.runtimeAnimatorController?.getInteger(name) !== val)
119
129
  this._parametersAreDirty = true;
130
+ if (debug) console.log("setInteger", name, val);
120
131
  this.runtimeAnimatorController?.setInteger(name, val);
121
132
  }
122
133
 
123
134
  /**@deprecated use getInteger */
124
135
  GetInteger(name: string | number) { return this.getInteger(name); }
125
136
  getInteger(name: string | number): number {
126
- return this.runtimeAnimatorController?.getInteger(name) ?? -1;
137
+ const res = this.runtimeAnimatorController?.getInteger(name) ?? -1;
138
+ if (debug) console.log("getInteger", name, res);
139
+ return res;
127
140
  }
128
141
 
129
142
  /**@deprecated use setTrigger */
130
143
  SetTrigger(name: string | number) { this.setTrigger(name); }
131
144
  setTrigger(name: string | number) {
132
- this.runtimeAnimatorController?.setTrigger(name);
133
145
  this._parametersAreDirty = true;
146
+ if (debug) console.log("setTrigger", name);
147
+ this.runtimeAnimatorController?.setTrigger(name);
134
148
  }
135
149
 
136
150
  /**@deprecated use resetTrigger */
137
151
  ResetTrigger(name: string | number) { this.resetTrigger(name); }
138
152
  resetTrigger(name: string | number) {
139
- this.runtimeAnimatorController?.resetTrigger(name);
140
153
  this._parametersAreDirty = true;
154
+ if (debug) console.log("resetTrigger", name);
155
+ this.runtimeAnimatorController?.resetTrigger(name);
141
156
  }
142
157
 
143
158
  /**@deprecated use getTrigger */
144
159
  GetTrigger(name: string | number) { this.getTrigger(name); }
145
160
  getTrigger(name: string | number) {
146
- this.runtimeAnimatorController?.getTrigger(name);
161
+ const res = this.runtimeAnimatorController?.getTrigger(name);
162
+ if (debug) console.log("getTrigger", name, res);
163
+ return res;
147
164
  }
148
165
 
149
166
  /**@deprecated use isInTransition */
@@ -156,6 +173,7 @@ export class Animator extends Behaviour {
156
173
  SetSpeed(speed: number) { return this.setSpeed(speed); }
157
174
  setSpeed(speed: number) {
158
175
  if (speed === this.speed) return;
176
+ if (debug) console.log("setSpeed", speed);
159
177
  this.speed = speed;
160
178
  this._animatorController?.setSpeed(speed);
161
179
  }
@@ -115,6 +115,7 @@ class TransformWatch {
115
115
  const original = this.obj.matrixWorld.multiplyMatrices.bind(this.obj.matrixWorld);
116
116
  const lastParentMatrix = new Matrix4();
117
117
  this.obj.matrixWorld["multiplyMatrices"] = (parent: Matrix4, matrix: Matrix4) => {
118
+ if (this.context.physics.engine?.isUpdating || this.mute) return original(parent, matrix);
118
119
  if (!lastParentMatrix.equals(parent)) {
119
120
  this.positionChanged = true;
120
121
  this.rotationChanged = true;
@@ -157,7 +157,7 @@ export class EventSystem extends Behaviour {
157
157
  handler: IPointerEventHandler;
158
158
  };
159
159
 
160
- if (e.obj === prevGrabbed && e.handler) {
160
+ if (e && e.obj === prevGrabbed && e.handler) {
161
161
  e.handler.onPointerUp?.call(e.handler, opts);
162
162
  this.pressedByID.delete(key);
163
163
  }
@@ -168,8 +168,7 @@ export class EventSystem extends Behaviour {
168
168
  const controllerRcOpts = new RaycastOptions();
169
169
  this._selectUpdateFn ??= (_ctrl: WebXRController) => {
170
170
  controllerRcOpts.ray = _ctrl.getRay();
171
- const rc = this.performRaycast(controllerRcOpts);
172
- if (!rc) return;
171
+ const rc = this.performRaycast(controllerRcOpts) ?? [];
173
172
  const opts = new PointerEventData(this.context.input);
174
173
  opts.inputSource = _ctrl;
175
174
  opts.pointerId = _ctrl.input?.handedness === "right" ? 0 : 1;
@@ -177,7 +176,7 @@ export class EventSystem extends Behaviour {
177
176
  opts.isUp = _ctrl.selectionUp;
178
177
  opts.isPressed = _ctrl.selectionPressed;
179
178
  opts.isClicked = false;
180
- this.handleIntersections(rc, opts);
179
+ this.handleIntersections(opts.pointerId, rc, opts);
181
180
  };
182
181
 
183
182
  WebXRController.addEventListener(ControllerEvents.SelectStart, this._selectStartFn);
@@ -261,23 +260,7 @@ export class EventSystem extends Behaviour {
261
260
  this.dispatchEvent(new CustomEvent(EventSystemEvents.BeforeHandleInput, { detail: evt }))
262
261
 
263
262
  // handle hit objects
264
- if (!this.handleIntersections(hits, data)) {
265
- // pointer has not hit any object to handle
266
-
267
- // thus is not hovering over anything
268
- const hoveredData = this.hoveredByID.get(id);
269
- if (hoveredData) {
270
- this.triggerOnExit(hoveredData.obj, hoveredData.data);
271
- }
272
- this.hoveredByID.delete(id);
273
-
274
- // if it was up, it means it doesn't should notify things that it down on before
275
- if (data.isUp) {
276
- const pressedData = this.pressedByID.get(id);
277
- pressedData?.handlers.forEach(h => h.onPointerUp?.call(h, data));
278
- this.pressedByID.delete(id);
279
- }
280
- }
263
+ this.handleIntersections(id, hits, data)
281
264
 
282
265
  this.dispatchEvent(new CustomEvent<AfterHandleInputEvent>(EventSystemEvents.AfterHandleInput, { detail: evt }))
283
266
  }
@@ -363,23 +346,38 @@ export class EventSystem extends Behaviour {
363
346
  return this._sortedHits;
364
347
  }
365
348
 
366
- // Handles first hit that has a handler, the rest is ignored
367
- private handleIntersections(hits: THREE.Intersection[], args: PointerEventData): boolean {
368
- if (!hits || hits.length <= 0) return false;
369
- // if (pressed)
370
- // console.log(this.context.alias, ...hits);
371
- hits = this.sortCandidates(hits);
372
- for (const hit of hits) {
373
- const { object } = hit;
374
- args.point = hit.point;
375
- args.normal = hit.normal;
376
- args.face = hit.face;
377
- args.distance = hit.distance;
378
- args.instanceId = hit.instanceId;
379
- if (this.handleEventOnObject(object, args)) {
380
- return true;
349
+ private handleIntersections(id:number, hits: THREE.Intersection[], args: PointerEventData): boolean {
350
+ if (hits?.length) {
351
+ hits = this.sortCandidates(hits);
352
+ for (const hit of hits) {
353
+ const { object } = hit;
354
+ args.point = hit.point;
355
+ args.normal = hit.normal;
356
+ args.face = hit.face;
357
+ args.distance = hit.distance;
358
+ args.instanceId = hit.instanceId;
359
+ if (this.handleEventOnObject(object, args)) {
360
+ return true;
361
+ }
381
362
  }
382
363
  }
364
+
365
+ // pointer has not hit any object to handle
366
+
367
+ // thus is not hovering over anything
368
+ const hoveredData = this.hoveredByID.get(id);
369
+ if (hoveredData) {
370
+ this.triggerOnExit(hoveredData.obj, hoveredData.data);
371
+ }
372
+ this.hoveredByID.delete(id);
373
+
374
+ // if it was up, it means it doesn't should notify things that it down on before
375
+ if (args.isUp) {
376
+ const pressedData = this.pressedByID.get(id);
377
+ pressedData?.handlers.forEach(h => h.onPointerUp?.call(h, args));
378
+ this.pressedByID.delete(id);
379
+ }
380
+
383
381
  return false;
384
382
  }
385
383