是否可以给一个GLTF添加点击方法
@cptbtptpbcptdtptp 加一个 glTF 点击的案例吧
https://codesandbox.io/s/gltf-loader-oasis-engine-0-6-2-forked-kqvo55?file=/index.ts 给 glTF 加点击方法的一个思路,因为有两个兄弟提了这个,我们先临时加了一个,后续完善的版本会在游乐场添加。
@njtyair
- glTFCollider 这个类实现了对 glTF 加碰撞的所有逻辑
- 可以自己选择是否合并 glTF 的包围盒,在 onStart 内执行 mergeBoundBox 或者 BoundBox
- 注意:合并包围盒后无法知道点击是由 glTF 的哪个部分触发的,但是不合并可以知道
- cube 的辅助视图只是帮助观察当前碰撞体的位置,不要的话注释 addBoundingBox 中部分代码即可
- 现在实现还较为潦草,这个里程碑优化后会发布到官网的游乐场中
- 本例中采用世界坐标系中的 AABB 包围盒子
部分示意图:
- 合并包围盒

- 不合并包围盒

@njtyair
- glTFCollider 这个类实现了对 glTF 加碰撞的所有逻辑
- 可以自己选择是否合并 glTF 的包围盒,在 onStart 内执行 mergeBoundBox 或者 BoundBox
- 注意:合并包围盒后无法知道点击是由 glTF 的哪个部分触发的,但是不合并可以知道
- cube 的辅助视图只是帮助观察当前碰撞体的位置,不要的话注释 addBoundingBox 中部分代码即可
- 现在实现还较为潦草,这个里程碑优化后会发布到官网的游乐场中
- 本例中采用世界坐标系中的 AABB 包围盒子
👍🏻👍🏻👍🏻非常感谢
https://juejin.cn/post/7071169483766759438,这里有一个给模型实现高精度点击的文章,可以试下
https://juejin.cn/post/7071169483766759438,这里有一个给模型实现高精度点击的文章,可以试下
这个是示例哈,高精度点击在 [官网示例](https://oasisengine.cn/0.6/examples#framebuffer-picker) 中就有,可以理解成是基于像素检测的,是像素级别的检查,精准度的提高的同时性能损耗也会变高,我提供的示例里是使用添加包围盒的方式,如果够用在性能上会节省许多。