Skip to content
导览

Class: NPCLayerManager

阿凡达NPC图层管理类

Details

添加NPC对象,获取所有图层,删除指定图层等

Hierarchy

  • Callable

    NPCLayerManager

Methods

addNPC

addNPC(NPCInfo, layerName): Promise<NPCObject>

Details

添加一个阿凡达NPC

Examples

js
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,
}
await nPCLayerManager.addNPC(info, 'dms_1')
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,
}
await nPCLayerManager.addNPC(info, 'dms_1')

Parameters

NameTypeDescription
NPCInfoNPCObjectInfoNPC对象信息
layerNamenull | string图层名字

Returns

Promise<NPCObject>

NPCObject NPC对象


getAllLayer

getAllLayer(): Promise<NPCLayer[]>

Details

获取所有图层

Examples

js
let nPCLayerManager = await cloud.getNPCLayerManager()  //获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
let nPCLayerManager = await cloud.getNPCLayerManager()  //获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()

Returns

Promise<NPCLayer[]>

图层对象数组


removeLayer

removeLayer(layerArray): Promise<boolean>

Details

批量删除图层

Examples

js
let nPCLayerManager = await cloud.getNPCLayerManager()  //获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await nPCLayerManager.removeLayer(ret)
let nPCLayerManager = await cloud.getNPCLayerManager()  //获取阿凡达NPC图层管理器
const ret = await nPCLayerManager.getAllLayer()
const e = await nPCLayerManager.removeLayer(ret)

Parameters

NameTypeDescription
layerArrayNPCLayer[]阿凡达NPC图层数组

Returns

Promise<boolean>

boolean 是否成功


setDbClickCallback

setDbClickCallback(fn): void

Details

设置双击NPC的回调函数

Examples

调用示例:

js
function pickNPC(npc: NPCObject | null) {
     console.log(npc)
}
let nPCLayerManager = await cloud.getNPCLayerManager()
await nPCLayerManager.setDbClickCallback(pickNPC)
function pickNPC(npc: NPCObject | null) {
     console.log(npc)
}
let nPCLayerManager = await cloud.getNPCLayerManager()
await nPCLayerManager.setDbClickCallback(pickNPC)

Parameters

NameType
fn(npc: null | NPCObject) => void

Returns

void


setAvatarNPCPosByMouse

setAvatarNPCPosByMouse(npcObj): Promise<any>

Details

设置某个npc对象的位置随鼠标移动

Examples

js
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,
}
let npcObj = await nPCLayerManager.addNPC(info, 'dms_1')
await nPCLayerManager.setAvatarNPCPosByMouse(npcObj)
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,
}
let npcObj = await nPCLayerManager.addNPC(info, 'dms_1')
await nPCLayerManager.setAvatarNPCPosByMouse(npcObj)

Parameters

NameTypeDescription
npcObjNPCObjectNPCObject对象

Returns

Promise<any>