围栏图层对象管理 WallLayer
围栏图层对象管理是用于控制云渲染围栏图层对象操作的工具, 该工具的主要功能包括:
- 添加 Wall 对象
- 图层的显示与隐藏
- 根据guid值移除围栏对象
- 清除围栏对象
- 获取图层中对应围栏对象
- 获取图层下的所有围栏对象
- 获取对象guid值
- 获取图层对象名
我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。
添加Wall对象 | addWallEffect
- 说明:添加 Wall 对象
我们可以调用 WallLayer
上面的 addWallEffect
方法来添加 Wall 对象。
- 参数说明
Name | Type | Description |
---|---|---|
args | any[] | 不定数量的参数 |
调用示例:
ts
//方式一:
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
const wallAttr: WallEffectAttr = {
diffuse: '0XfFff0000', //围栏颜色
speed: 0, //纹理流速
isStretch: false, //围栏纹理是否拉伸
isTangentWallEffectDir: true, //围栏效果运动方向是否是沿着路径的切线方向
diffuseTexture: 'yellow', //纹理,可选填值:Planarity、Gradient、red、Stroke、yellow
};
const bottons = [];
bottons.push(new Vector3(256.787, 0.6, 356.222));
bottons.push(new Vector3(289.689, 0.681, 355.693));
bottons.push(new Vector3(285.741, 0.7, 331.082));
bottons.push(new Vector3(256.787, 0.6, 356.222));
// bottons.push(new LonLatAlt(0.0023067557, 0.0031999990, 0.6151075792));
// bottons.push(new LonLatAlt(0.0026023211, 0.0031952462, 0.6972457329));
// bottons.push(new LonLatAlt(0.0025668529, 0.0029741609, 0.7148046494));
// bottons.push(new LonLatAlt(0.0023067557, 0.0031999990, 0.6151075792));
const wallGeo: WallGeometry = {
bottomOutline: bottons, //围栏底部的顶点
height: 10, //围栏高度
};
var wall = await layer.addWallEffect(wallAttr, wallGeo);
//方式二:
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
const param = {
Material: { // 选填
BumpMode: 0, //凹凸模式
MaterialType: 0, //材质类型
Metallic: 0.5, // 金属光泽度
NormalOrBumpScale: 1.0, // 凸起比例
Roughness: 0.5, // 粗糙度
Diffuse: '0XFF00FF00', //漫反射颜色
//可选填值:Planarity、Gradient、red、Stroke、yellow
DiffuseTexture: 'Planarity', //纹理
},
TextureRate: 1.0, //线的纹理率(一般来说不变),选填
Height: 3, //围栏高度 选填
IsStretch: true, //围栏纹理是否拉伸 选填
Speed: 0.02, //围栏纹理速度值 选填
IsTangentWallEffectDir: true, //围栏效果运动方向是否是沿着路径的切线方向 选填
IsReverseWallEffect:false, //围栏效果运动是否是逆时针 选填
IsShow:true, //围栏是否显示值 选填
UVRepeatUNum: 6.0, //表示纹理在u轴重复数 选填
UVRepeatVNum: 2.0, //表示纹理在v轴重复数 选填
BottomOutline: //围栏底部的顶点
[
[
15.625022888183594,
0.0099849095568060875,
29.745611190795898,
],
[
37.157989501953125,
0.010088586248457432,
28.169088363647461,
],
[
36.95220947265625,
0.010002888739109039,
16.018711090087891,
],
[
27.902980804443359,
0.0099409837275743484,
14.839985847473145,
],
],
type: '.primt',
}
var wall = await layer.addWallEffect(param);
//方式一:
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
const wallAttr: WallEffectAttr = {
diffuse: '0XfFff0000', //围栏颜色
speed: 0, //纹理流速
isStretch: false, //围栏纹理是否拉伸
isTangentWallEffectDir: true, //围栏效果运动方向是否是沿着路径的切线方向
diffuseTexture: 'yellow', //纹理,可选填值:Planarity、Gradient、red、Stroke、yellow
};
const bottons = [];
bottons.push(new Vector3(256.787, 0.6, 356.222));
bottons.push(new Vector3(289.689, 0.681, 355.693));
bottons.push(new Vector3(285.741, 0.7, 331.082));
bottons.push(new Vector3(256.787, 0.6, 356.222));
// bottons.push(new LonLatAlt(0.0023067557, 0.0031999990, 0.6151075792));
// bottons.push(new LonLatAlt(0.0026023211, 0.0031952462, 0.6972457329));
// bottons.push(new LonLatAlt(0.0025668529, 0.0029741609, 0.7148046494));
// bottons.push(new LonLatAlt(0.0023067557, 0.0031999990, 0.6151075792));
const wallGeo: WallGeometry = {
bottomOutline: bottons, //围栏底部的顶点
height: 10, //围栏高度
};
var wall = await layer.addWallEffect(wallAttr, wallGeo);
//方式二:
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
const param = {
Material: { // 选填
BumpMode: 0, //凹凸模式
MaterialType: 0, //材质类型
Metallic: 0.5, // 金属光泽度
NormalOrBumpScale: 1.0, // 凸起比例
Roughness: 0.5, // 粗糙度
Diffuse: '0XFF00FF00', //漫反射颜色
//可选填值:Planarity、Gradient、red、Stroke、yellow
DiffuseTexture: 'Planarity', //纹理
},
TextureRate: 1.0, //线的纹理率(一般来说不变),选填
Height: 3, //围栏高度 选填
IsStretch: true, //围栏纹理是否拉伸 选填
Speed: 0.02, //围栏纹理速度值 选填
IsTangentWallEffectDir: true, //围栏效果运动方向是否是沿着路径的切线方向 选填
IsReverseWallEffect:false, //围栏效果运动是否是逆时针 选填
IsShow:true, //围栏是否显示值 选填
UVRepeatUNum: 6.0, //表示纹理在u轴重复数 选填
UVRepeatVNum: 2.0, //表示纹理在v轴重复数 选填
BottomOutline: //围栏底部的顶点
[
[
15.625022888183594,
0.0099849095568060875,
29.745611190795898,
],
[
37.157989501953125,
0.010088586248457432,
28.169088363647461,
],
[
36.95220947265625,
0.010002888739109039,
16.018711090087891,
],
[
27.902980804443359,
0.0099409837275743484,
14.839985847473145,
],
],
type: '.primt',
}
var wall = await layer.addWallEffect(param);
图层的显示与隐藏 | show
- 说明:图层的显示与隐藏
我们可以调用 WallLayer
上面的 show
方法来图层的显示与隐藏。
- 参数说明
Name | Type | Description |
---|---|---|
isShow | Boolean | 图层的显示与隐藏 |
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.show(true);
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.show(true);
根据guid值移除围栏对象 | removeWall
- 说明:根据guid值移除围栏对象
我们可以调用 WallLayer
上面的 removeWall
方法根据guid值移除围栏对象。
- 参数说明
Name | Type | Description |
---|---|---|
guid | string | 围栏对象guid值 |
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.removeWall("E24FAB463E5746FE98F100918D4B32E3");
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.removeWall("E24FAB463E5746FE98F100918D4B32E3");
清除某个图层中所有围栏对象 | clearWalls
- 说明:清除某个图层中所有围栏对象
我们可以调用 WallLayer
上面的 clearWalls
方法来清除某个图层中所有围栏对象。
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.clearWalls();
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.clearWalls();
获取图层中对应围栏对象 | getWall
- 说明:获取图层中对应围栏对象
我们可以调用 WallLayer
上面的 getWall
方法来获取图层中对应围栏对象。
- 参数说明
Name | Type | Description |
---|---|---|
guid | string | 围栏对象guid值 |
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getWall("E24FAB463E5746FE98F100918D4B32E3");
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getWall("E24FAB463E5746FE98F100918D4B32E3");
设置获取图层下的所有围栏对象围栏高度 | getWalls
- 说明:获取图层下的所有围栏对象
我们可以调用 WallLayer
上面的 getWalls
方法来获取图层下的所有围栏对象。
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
var list1 = await layer.getWalls();
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
var list1 = await layer.getWalls();
获取对象guid值 | getGuid
- 说明:获取对象guid值
我们可以调用 WallLayer
上面的 getGuid
方法来获取对象guid值。
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getGuid();
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getGuid();
获取图层对象名 | getName
- 说明:获取图层对象名
我们可以调用 WallLayer
上面的 getName
方法来获取图层对象名。
调用示例:
ts
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getName();
const wallManger = await cloud.getWallManager();
var layers = await wallManger.getAllLayers();
var layer = layers[0];
layer.getName();