碰撞检测
第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; //碰撞检测开启
在线演示
Powered by mms3D