Look at this playground: Babylon.js Playground
You will need to open console to see the problem.
When you are pressing and releasing single button you will see event type 1 (pointer down) and event type 2 (pointer up) in a console. Here it is working as expected.
But try to hold RMB and click LMB. You will see only two of event type 4 events (which are pointer move). This glitch doesn’t allow me to shot when I am aiming in my simulation.
Of course I have found how to bypass this:
_setScopedFire () {
this.scopedFire = this.zoomIn && !this.scopedFire;
}
This function changes the flag on each pointer event while we are aiming. This is how we can divide up and down events. But still I think that original behavior is a bug. If this might be fixed then my hack will not be needed.
Thank you!
This is not related to babylonjs. We listen to pointerdown, pointerup and we just bubble up all of that in a convenient observable