2.10.2 演示系统

演示系统子项

演示系统由演示系统子项PresentationItem构成,播放时会根据传入的子项数组顺序依次执行。子项分为以下四类,各类别功能及参数要求如下:

CAMERA(视点定位)

  • 功能:相机视点定位。
  • 参数说明:
    • camera:用来定位的相机视点对象,如果不传,系统将自动获取当前视点信息。

FOLLOW(对象跟随)

  • 功能:使相机实时跟随指定对象移动,常用于路径动画效果。
  • 参数说明:
    • followUuid:需跟随对象的avatarUuid(唯一标识);
    • azimuthpitchdistanceliftUp:跟随视角参数(分别为方位角、俯仰角、跟随距离、抬高)。

HIDE(对象隐藏)

  • 功能:控制对象隐藏。
  • 参数说明:
    • hideUuids:(需隐藏对象的avatarUuid数组),播放时会隐藏该数组avatarUuid对应的对象;

SHOW(对象显示)

  • 功能:控制对象显示。
  • 参数说明:
    • showUuids:(需隐藏对象的avatarUuid数组),播放时会显示该数组avatarUuid对应的对象;

创意建一个演示子项:

var item = new CooWasm.PresentationItem({
    type: CooWasm.EnumPresentationItemType.CAMERA,
});

演示系统的创建与播放

1.创建演示系统子项

// 初始化一个CAMERA类型的演示子项(自动获取当前视点)
var item = new CooWasm.PresentationItem({
    type: CooWasm.EnumPresentationItemType.CAMERA,
});

2.创建演示系统

// 初始化演示系统(默认状态为停止)
var presentation = new CooWasm.Presentation({
    status:CooWasm.EnumPresentationStatus.STOP
}, state => {
    if (!state) {
        // 初始化失败时销毁实例
        presentation = presentation.destroy();
    }
})

3.绑定演示子项到系统

// 将子项数组绑定到演示系统(按数组顺序依次播放)
presentation.update({
    items:[item]
})

4.播放演示系统

// 启动演示系统播放
presentation.play();

路径动画效果

演示系统可结合Model类(或者GeoCuboid/GeoSphere),Path类实现路径动画效果,以下以Model类为例,展示完整创建流程 (注意:每一步需在上一步回调成功后执行)。

1.创建路径

// 初始化路径(展示模式)
pathObj = new CooWasm.Path({
    editMode: CooWasm.EnumPathEditMode.SHOW,
    waypoints:[
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2186460645, 30.2079714945, 14.306917811), 10),
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2214998692, 30.2083024861, 14.7414785178), 20),
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2209860769, 30.2103358536, 14.8805724924), 20),
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2182344832, 30.2094266889, 14.2970579566), 20),
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2174964696, 30.2111385021, 14.2970579566), 20),
        new CooWasm.WayPoint(new CooWasm.Vec3Obj(120.2199682291, 30.212185077, 14.2970579566), 20),
    ]
}, state => {
    if (state) {
        //创建成功,执行下一步加载部件
        loadModel();
    } else {
        pathObj = pathObj.destroy();
    }
});

2.创建部件并绑定路径

// 初始化模型(绑定路径,设置初始位置/缩放)
modelObj = new CooWasm.Model({
    url: "http://127.0.0.1:8088/Data/C3S/Models/truck.c3s",
    location: new CooWasm.Vec3Obj(120.2186460645, 30.2079714945, 20),
    scale: new CooWasm.Vec3Obj(3, 3, 3)
    //关键参数:绑定已创建的路径对象
    path :pathObj    
}, state => {
    if (state) {
        //创建成功,执行下一步创建演示子项
        loadPresentationItem();
    } else {
        modelObj = modelObj.destroy();
    }
},wayPointStr=> {
    //路径关键点回调(经过关键路径点时,返回索引)
    console.log("当前经过点位:"+wayPointStr);
},positionStr=> {
     //路径位置回调(按时间间隔返回地理坐标)
    console.log("当前点位位置:"+positionStr);
})

3.创建演示系统子项并绑定部件

// 初始化FOLLOW类型演示子项(绑定模型UUID与跟随参数)
var item = new CooWasm.PresentationItem({
    type: CooWasm.EnumPresentationItemType.FOLLOW,
    name: "路径跟随",
    followUuid: modelObj.avatarUuid,//绑定部件Uuid
    distance: 100,
    azimuth: 180,
    pitch: -55
}, state => {
    if (state) {
        //创建成功,执行下一步创建演示系统
        loadPresentationItem();
    } else {
        item = item.destroy();
    }
})

3.创建演示系统并添加子项

//初始化演示系统(传入跟随子项,默认停止状态)
presentationObj = new CooWasm.Presentation({
    //添加子项,按数组顺序播放子项
    items:[item],
    status:CooWasm.EnumPresentationStatus.STOP
}, state => {
    if (state) {
        //演示系统创建成功,准备播放
        paly();
    }else{
        presentationObj = presentationObj.destroy();
    }
})

3.执行路径动画效果播放

//设置部件沿路径播放
modelObj.update({
    playStatus:CooWasm.EnumPathPlayStatus.PLAY
});
//启动演示系统跟随播放
presentationObj.play()

CooWasm开发者中心操作指南(演示系统)

演示系统

1.选择功能模块: 在开发者中心左侧列表中,依次选择场景绘制演示系统

2.创建演示系统: 点击创建演示系统,完成创建。

3.创建演示子项: 在左侧属性面板点击创建并绑定子项,创建演示子项。 2-10-3-3

4.演示子项(CAMERA): 创建演示子项后,默认typeCAMERA,此时会读取当前视角信息并显示在面板上。

2-10-3-4

5.演示子项(FOLLOW):type下拉框修改为FOLLOW,此时会读取当前场景加载的部件/3D对象id,并在followUuid下拉框中显示出来。

2-10-3-5

6.演示子项(HIDE):type下拉框修改为HIDE,此时会读取当前场景加载所有对象id,并在hidUuids下拉框中显示出来。

2-10-3-6

7.演示子项(SHOW):type下拉框修改为SHOW,此时会读取当前场景加载所有对象id,并在showUuids下拉框中显示出来。

2-10-3-7

8.播放演示系统: 点击属性面板下方播放按钮,即可按顺序播放所有演示。

2-10-3-8

CopyrightFile Modify: 2025-07-10 09:04:25

results matching ""

    No results matching ""