MMSDT.particlesBomb()
模型以粒子的方式破碎爆炸,消失,用于模型的隐藏动画过度。
构造函数
MMSDT.particlesBomb( parameters: object )
parameters - json格式,参数设置。
modelIndex - 整数,模型序号下标
childName - 二维数组,位置,模型子网格名称包含
color - RGB颜色,破片颜色
distance - 数字,爆炸范围
time - 整数,持续时间,毫秒
bloom - 布尔值,是否发光(发光需开启后期)
属性
.enabled( arrayIndex, Boolean)
爆炸或者恢复
arrayIndex - 整数,参数中的模型数组下标
Boolean - 布尔值,true破片恢复,false爆炸消失
代码示例
var MMS3D_exceptionMesh = []; //需要材质拆分的网格
var MMS3D_instancingMesh = []; //合并实例化网格
//初始化场景
MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh );
//设置第3人称鼠标控制器
controls3.maxPolarAngle = Math.PI*0.48; //向下,最大角度限制
controls3.maxDistance = 700; //最远距离限制
controls3.screenSpacePanning = false; //右键平移是否上下移动
controls3.enableDamping = true; //是否开启惯性阻尼
controls3.dampingFactor = 0.1; //惯性阻尼系数
controls3.autoRotateSpeed = 2; //自动旋转速度
//使用json文件让场景还原
MMSDT.onloadScene( "models/mms3D_blgcx1.json", function(progress){
if( progress == 'done' ){
//加载完成
onloadDone();
}else if( progress == 'ok' ){
//渲染完成
}else{
//显示进度条数字
document.getElementById("loadNum").innerHTML = Math.round( progress )+'%';
}
});
var particles;
//场景加载完成
function onloadDone(){
//破碎爆炸参数设置
var options = {
modelIndex: 0, //模型序号下标
childName: [ //位置,模型子网格名称包含
["dl"], //屋顶
["3l"], //三楼
["2l"], //二楼
],
color: 0xeeeeee, //破片颜色
distance: 200, //爆炸范围
time:1000, //持续时间
bloom:false //是否发光(发光需开启后期)
}
particles = new MMSDT.particlesBomb(options); //初始化破碎爆炸
}
//自定义对外函数接口------------------------------------------------------------------------
//拆分楼层
MMAPI.bomb = function(num){
switch(num) {
case 1: //房顶消失
particles.enabled( 0, false ); //参数中的模型数组下标,false爆炸消失
break;
case 2: //三楼消失
particles.enabled( 1, false );
break;
case 3: //二楼消失
particles.enabled( 2, false );
break;
case 4: //二楼显现
particles.enabled( 2, true ); //参数中的模型数组下标,true碎片汇聚显示
break;
case 5: //三楼显现
particles.enabled( 1, true );
break;
case 6: //房顶显现
particles.enabled( 0, true );
break;
}
}
点击查看示例演示 →
Powered by mms3D