Skip to main content

Path

皮肤(Skin)由一个或多个 Path 组成。每个 Path 都有自己的渲染类型。渲染类型有两种:视频流模式和全景图模式。视频流模式下可以改变相机位置实现镜头移动,全景图模式目前就只能在一个相机位置转动相机浏览。

export enum RenderType {
PANORAMA = 'PANORAMA',
VIDEO = 'VIDEO',
}

这个类型可以通过 IPathConfig 中的 renderType 属性获取到

切换 Path

在进房后可以在当前房间的任意 Path 间进行切换

await worldInstance.getCurrentRoom()?.setSkinInfo({
pathId,
})

全景图 path 控制 fov

export enum EPanoramaMode {
VERTICAL = 0, //竖屏
HORIZONTAL = 90, //横屏
}

await worldInstance.getCurrentRoom()?.setSkinInfo({
pathId,
{
panoramaMode:EPanoramaMode.HORIZONTAL
}
})

载具路线执行完成后的回调

载具 Path 的调用会持续一段时间,除了根据异步返回确定是否调用成功之外,还可以传入 Path 执行完成的回调函数,会在执行完成后触发调用。

参考示例:

world.getCurrentRoom().setSkinInfo(
{ pathId: '64a6fd7308ed20c4' },
{
endCallback: () => {
console.error('end')
},
},
)

载具路线镜头旋转角度限制

载具 Path 的调用会持续一段时间,这期间允许滑屏转动,有时我们不希望 360° 旋转,而是限制在一个固定的角度,这时就可以设置dynamicPathRotateLimit

参考示例:

// ptich限制在+-80,yaw限制在+-70
world.getCurrentRoom().setSkinInfo({
pathId: '64a6fd7308ed20c4',
{ maxPitchDiff: 80, maxYawDiff: 70 }:
})

一三人称切换

Path 还有不同的人称属性,分为第一人称和第三人称

枚举定义:

export enum PersonType {
Third = 'ThirdPerson',
First = 'FirstPerson',
}

这个类型可以通过 IPathConfig 中的 personType 属性获取到