前言
该文章主要讲元宇宙虚拟空间的碰撞体检测,基本技术点,不多说,直接引入正题。
碰撞体检测
这里可以看到检测代码的逻辑是经过一系列判断,最后判断模型类型属性如果是trimesh,那么通过解析出来的顶点来生成我们的一个碰撞体,并添加到我们的物理世界里面
if (child.userData.hasOwnProperty('data')){
if (child.userData.data === 'physics'){
if (child.userData.hasOwnProperty('type')) {
if (child.userData.type === 'trimesh'){
let phys = new TrimeshCollider(child, {}); this.physicsWorld.addBody(phys.body);
那么要实现一个碰撞体,需要把这个模型重新复制一下,然后把它不要的材质给它删掉,这里可以看到碰撞体模型的自定义字符串类型属性为trimesh,当然这样做虽然很好,但是有些模型可是有很多很多的面就会很浪费性能,对于一些不规则的模型但刚好又可以用其它模型来替代它的一个碰撞体,比如火车,我们就可以用长方体来替代它,避免掉性能的浪费
添加某个好看的模型在blender上面操作就好,如果添加某个物体就Shift+A快键添加一下