the abstraction in drei seems to be very old, it doesn’t react to changing the default camera. i’ve also looked into three-stdlib/flycontrols and it seems broken, it has constructor side-effects and doesn’t use pointer events. i’ve fixed both. it supports camera switches and should also work on mobile now.
It’s fair to say that FirstPersonControls and FlyControls should be ported to Pointer Events. TBH, I’m a bit surprised both classes were overlooked when other controls like OrbitControls or TransformControls were updated.
The side effects issue is also something that should be fixed. The related discussion is:
yes, very odd. fly-controls was also the last remaining control that had these issues which is why i was wondering, i was sure we fixed it but this one must’ve fallen out. can these controls be upstreamed to jsm/controls perhaps? though we use types, which probably makes it harder.
I think I have the time to update both controls next week. I remember now that I have filed PRs for both classes in the past but Ricardo and I were not sure about renaming public variables and methods (meaning moving from the “mouse” to the “pointer” syntax), see.
I’ll just fix the events for now and file different PRs for the renaming issue. That should be the less blocking approach.