new MMSDT.collision

碰撞检测

第1人称漫游时候,与地面、周边建筑的检测,用于上下楼梯,禁止穿墙等

使用键盘A、D、W、S键行走

参数

new MMSDT.collision( parameter )

parameter: 初始化参数

var parameter = {
ground: grounds, //碰撞检测物
distance: 20, //前后左右检测的距离
height: 30, //碰撞点高度(前后左右的监测点),需小于人的高度,过高很容易跨越障碍
stature: 60, //人的高度
gravity: 0.5, //重力
onOff: false, //默认碰撞检测关闭
}

属性

.onOff()

布尔值,碰撞检测是否开启

代码示例

//设置第3人称鼠标控制器关闭 controls.enabled = false; //设置第1人称鼠标控制器 controls1.enabled = true; //第一人称控制器开启 controls1.movementSpeed = 50; //移动速度 controls1.lookSpeed = 0.1; //旋转灵敏度 controls1.initialX = -1.57; //默认镜头水平方向 controls1.initialY = 0; //默认镜头垂直方向 container.addEventListener('click', function() { focus(); //如果用<iframe>嵌入,需要获取焦点,否则键盘不起作用 }, false); //把碰撞物模型归集 var grounds = []; models[0].traverse( function ( child ) { if ( child.isMesh ) { grounds.push( child ); //归集需要碰撞检测的模型 } }); //碰撞检测参数 var parameter = { ground: grounds, //碰撞检测物 distance: 20, //前后左右检测的距离 height: 30, //碰撞点高度(前后左右的监测点),需小于人的高度,过高很容易跨越障碍 stature: 60, //人的高度 gravity: 0.5, //重力 onOff: false, //默认碰撞检测关闭 } var collision = new MMSDT.collision( parameter ); //初始化碰撞检测 collision.onOff = true; //碰撞检测开启

在线演示