Skip to content
导览

围栏图层对象管理 WallLayer

围栏图层对象管理是用于控制云渲染围栏图层对象操作的工具, 该工具的主要功能包括:

  1. 添加 Wall 对象
  2. 图层的显示与隐藏
  3. 根据guid值移除围栏对象
  4. 清除围栏对象
  5. 获取图层中对应围栏对象
  6. 获取图层下的所有围栏对象
  7. 获取对象guid值
  8. 获取图层对象名

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

添加Wall对象 | addWallEffect

  • 说明:添加 Wall 对象

我们可以调用 WallLayer 上面的 addWallEffect 方法来添加 Wall 对象。

  • 参数说明
NameTypeDescription
argsany[]不定数量的参数

调用示例:

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 方法来图层的显示与隐藏。

  • 参数说明
NameTypeDescription
isShowBoolean图层的显示与隐藏

调用示例:

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值移除围栏对象。

  • 参数说明
NameTypeDescription
guidstring围栏对象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 方法来获取图层中对应围栏对象。

  • 参数说明
NameTypeDescription
guidstring围栏对象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();