Skip to content
导览

阿凡达NPC图层对象 npcLayer

阿凡达NPC图层对象操作是用于控制云渲染阿凡达NPC图层对象操作的工具, 该工具的主要功能包括:

  1. 设置图层显隐
  2. 获取图层名字
  3. 获取图层下的阿凡达对象
  4. 根据GUID获取图层下的阿凡达对象
  5. 获取图层的显隐状态
  6. 删除图层中的某个NPC对象
  7. 根据Guid删除图层中的某个NPC对象

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

NPCLayerManager

用户可以调用云渲染实例 cloud 上的 getNPCLayerManager() 方法来获取 NPCLayerManager 阿凡达NPC图层管理器。

ts
const NPCLayerManager = await cloud.getNPCLayerManager()
const NPCLayerManager = await cloud.getNPCLayerManager()

用户调用 cloud.getNPCLayerManager() 后,nPCLayerManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getNPCLayerManager()
const NPCLayerManager = cloud.nPCLayerManager
await cloud.getNPCLayerManager()
const NPCLayerManager = cloud.nPCLayerManager

设置图层显隐 | show

  • 说明:设置NPC的图层显隐

我们可以调用 npcLayer 上面的 show 方法来设置图层显隐。

  • 参数说明
NameTypeDescription
isShowboolean图层显隐 true显示

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
await ret[0].show(true)
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
await ret[0].show(true)

获取图层名字 | name

  • 说明:获取NPC的图层名字

我们可以调用 npcLayer 上面的 name 方法来获取图层名字。

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
const name = await ret[0].name()
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
const name = await ret[0].name()

获取图层下的阿凡达对象 | getNPCObjects

  • 说明:获取图层下添加的阿凡达对象

我们可以调用 npcLayer 上面的 getNPCObjects 方法来获取图层下的阿凡达对象。

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].getNPCObjects()
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].getNPCObjects()

根据GUID获取图层下的阿凡达对象 | getNPCObjectByGuid

  • 说明:根据NPC对象的GUID,获取图层下的阿凡达对象

我们可以调用 npcLayer 上面的 getNPCObjectByGuid 方法来根据GUID获取图层下的阿凡达对象。

  • 参数说明
NameTypeDescription
guidstringNPC对象的Guid

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].getNPCObjectByGuid('123abcxxxxxxxxx')
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].getNPCObjectByGuid('123abcxxxxxxxxx')

获取图层的显隐状态 | isShow

  • 说明:获取图层的显隐状态

我们可以调用 npcLayer 上面的 isShow 方法来获取图层的显隐状态。

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].isShow()
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await ret[0].isShow()

删除图层中的某个NPC对象 | remove

  • 说明:删除图层中添加的某个NPC对象

我们可以调用 npcLayer 上面的 remove 方法来删除图层中的某个NPC对象。

  • 参数说明
NameTypeDescription
objNPCObjectNPC对象

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
const obj = await nPCLayerManager.addNPC(info, 'dms_1')
const ret = await nPCLayerManager.getAllLayer()
await ret[0].remove(obj)
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
const obj = await nPCLayerManager.addNPC(info, 'dms_1')
const ret = await nPCLayerManager.getAllLayer()
await ret[0].remove(obj)

根据Guid删除图层中的某个NPC对象 | removeObjByGuid

  • 说明:根据Guid删除图层中添加的某个NPC对象

我们可以调用 npcLayer 上面的 removeObjByGuid 方法来根据Guid删除图层中的某个NPC对象。

  • 参数说明
NameTypeDescription
npcGuidstringNPC对象的guid值

调用示例:

ts
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
const obj = await nPCLayerManager.addNPC(info, 'dms_1')
const ret = await nPCLayerManager.getAllLayer()
await ret[0].removeObjByGuid('123abcxxxxxxxxx')
let nPCLayerManager = await cloud.getNPCLayerManager() // 获取阿凡达NPC图层管理器
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
const obj = await nPCLayerManager.addNPC(info, 'dms_1')
const ret = await nPCLayerManager.getAllLayer()
await ret[0].removeObjByGuid('123abcxxxxxxxxx')