Orillusion / orillusion

Orillusion is a pure Web3D rendering engine which is fully developed based on the WebGPU standard.
https://www.orillusion.com
MIT License
4.7k stars 614 forks source link

[BUG]: 你这个inputSystem鼠标事件处理有点不合理 #429

Closed zhangwenyan closed 1 month ago

zhangwenyan commented 1 month ago

看你官网的示例里面,鼠标移动到canvas外面去,鼠标事件就结束了,我就感觉怪怪的,后来我去看了threejs的示例,人家鼠标拖动到canvas外面,然后再拖动回来,鼠标拖动事件没有停止

lslzl3000 commented 1 month ago

以 three.js oribitController为例,它没有监测 pointerleave event 所以,鼠标离开 canvas 不会中断状态

但确实不需要处理 leave 事件吗? 这个很难界定哪种处理方式更好,很多情况确实鼠标离开了就是真的离开了,不需要保持状态了,three的leave保持在很多例子中反而也会造成交互bug,不同的业务可能处理逻辑不一样

目前 inputsystem 确实统一处理了 leave 事件, 都算做鼠标交互结束,我们考虑一下是否要单独处理 leave 事件,这个issue 也保持开放,看看有没有其他意见。 目前,如果你的应用需要保持 leave 事件,可以自定义一个 controller 监听 canvas 原生 pointer 事件来处理

lslzl3000 commented 1 month ago

尝试在 down 状态下锁定了 pointer , 可以保持交互锁定 (#432) , 下个版本会发布修复