如何向 A-Frame 中导入的 3D 对象添加网格碰撞器?
How to add a mesh collider to imported 3D object in A-Frame?
我正在开发一个 aframe 项目,其中从 .obj 文件加载 3D 对象。但是,raycaster 不适用于导入的对象。我怀疑原因是与内置几何体不同,这些导入的对象没有正确设置对撞机。是否可以将网格碰撞器添加到通用 3D 对象,就像在 Unity 中一样?还是由于某些其他可能的原因,光线投射器无法处理这些对象?
网格确实可以与 raycaster 配合使用,因此如果您遇到问题 2 个快速解决方案:
- 确保网格的大小和居中确实正确。很可能不是,而且边界框不正确,因此您必须查看网格的特定部分才能使其正常工作。使用检查器可以看到边界框。然后,您可以使用 Blender 等 3D 建模软件来修复网格。
- 边界框对于自然交互来说可能感觉太小了,您可以添加一个不可见的透明对象,例如一个球体或盒子,然后会随着光线投射器而改变。此解决方案仅在不介意音量不完善时才有意义。
还要确保光线投射器的原点和网格之间没有物体!这是一个愚蠢的问题,但有时我们忘记了我们 add/remove 对象是通过使它们透明和...它们阻止光线投射器与后面的对象交互。
PS:如果除了光线投射器之外还需要对撞机,可以使用 aabb-collider component.
我正在开发一个 aframe 项目,其中从 .obj 文件加载 3D 对象。但是,raycaster 不适用于导入的对象。我怀疑原因是与内置几何体不同,这些导入的对象没有正确设置对撞机。是否可以将网格碰撞器添加到通用 3D 对象,就像在 Unity 中一样?还是由于某些其他可能的原因,光线投射器无法处理这些对象?
网格确实可以与 raycaster 配合使用,因此如果您遇到问题 2 个快速解决方案:
- 确保网格的大小和居中确实正确。很可能不是,而且边界框不正确,因此您必须查看网格的特定部分才能使其正常工作。使用检查器可以看到边界框。然后,您可以使用 Blender 等 3D 建模软件来修复网格。
- 边界框对于自然交互来说可能感觉太小了,您可以添加一个不可见的透明对象,例如一个球体或盒子,然后会随着光线投射器而改变。此解决方案仅在不介意音量不完善时才有意义。
还要确保光线投射器的原点和网格之间没有物体!这是一个愚蠢的问题,但有时我们忘记了我们 add/remove 对象是通过使它们透明和...它们阻止光线投射器与后面的对象交互。
PS:如果除了光线投射器之外还需要对撞机,可以使用 aabb-collider component.