1.0.4 builtin
写了一个简单的射线检测拖动模型的功能 在web上正常 微信开发者工具和手机就有问题
具体实现为 监听玩家触摸点下移动取消结束 在点下时 记下位置 移动时计算位置差与开始的位置相加就是新的位置
在电脑上谷歌浏览器上调试 没问题
构建发布后 在微信开发者工具和手机上有问题 具体表现为 拖动到其他地方 ,然后再点击模型 射线无法检测到模型
希望引擎组能帮忙解决下这个问题
要是有想知道的尽管问
不知道怎么发视频?
你好,能否给个稳定复现的 demo 啊
怎么上传呢>?
在谷歌浏览器调试也出现这个问题了
请注意 相机是正交
你往上拖动模型 然后放手 然后点击模型打断点 射线只能检测到地板
我个人猜测是 正交相机生成射线时有问题
你用的是哪个做的啊,creator还是creator3d.我用creator3d做的项目没问题啊
把下面注释的代码改成下面的就好了
// let pos = e.touch.getUILocation()
let pos = new Vec2();
e.touch.getLocation(pos);
这个跟适配相关,UILocation 获取的是屏幕空间的坐标,可以看作是 UI 节点的世界坐标,屏幕空间是按照设计分辨率来的,比如你的设计分辨率是 640 x 1136,哪么点击屏幕中心 getUILocation 返回的就是 (320,568)。
目前相机里面计算射线是根据逻辑分辨率来的,比如 iphone 6 的是 375 x 667 , 如果你点击中心,UILocation 依然会根据设计分辨率返回,相对于逻辑分辨率这个时候就不对了,getLocation 是基于逻辑分辨率的,使用这个才可以获得正确的世界空间下的射线。
另外射线检测是纯代数运算,基本不会有问题的
在微信开发者工具上还是有问题
改成你这句代码 ,射线完全找不到立方体了
我做的是微信小游戏 也请以微信小游戏为准