交互节点控制

交互节点控制器

如无特殊情况,以下接口中的begin、end值与TrackInfo中的Range值对应即可

旋转

Component InitRotationNode(string path, bool isOverlay = false)

简要说明

对某个节点进行旋转操作(isOverlay参数预计2.22.0版本发布)

参数

参数名 类型 说明
path string 路径
isOverlay bool 是否在节点原先旋转的基础上进行旋转,默认false表示与参考系的旋转一致

返回值

类型 说明
Component 执行交互的实例

可调用内置的方法

void Reset()

调用该方法用于重置初始状态的旋转差值,仅isOverlay为true时有效

Example

-- isOverlay = false
self.excutor = self.VLabInteractiveNodeCtrl:InitRotationNode(EmptyChildPath)
self.VLabSlideRotateCtrl:AddNode(self.excutor)

-- isOverlay = true
self.excutor = self.VLabInteractiveNodeCtrl:InitRotationNode(EmptyChildPath, true)
self.VLabSlideRotateCtrl:AddNode(self.excutor)
-- 需要重置初始角度时
self.excutor:Reset()

Component InitRotationNodeAroundAPoint(string path, string anchor, float begin, float end)

简要说明

初始化旋转节点(绕点旋转)

参数

参数名 类型 说明
path string 路径
anchor string 锚点
begin float 开始角度(Rad)
end float 结束角度(Rad)

返回值

类型 说明
Component 执行交互的实例

Component InitRotationNode(string path, Quaternion begin, Quaternion end, bool isWorld = false)

简要说明

初始化旋转节点

参数

参数名 类型 说明
path string 路径
begin Quaternion 开始角度
end Quaternion 结束角度
isWorld bool 是否世界坐标

返回值

类型 说明
Component 执行交互的实例

Component InitRotationNode(string path, Vector3 begin, Vector3 end, bool isWorld = false)

简要说明

初始化旋转节点

参数

参数名 类型 说明
path string 路径
begin Vector3 开始角度(欧拉角)
end Vector3 结束角度(欧拉角)
isWorld bool 是否世界坐标

返回值

类型 说明
Component 执行交互的实例

拖动

Component InitSlideNode(string path, bool isForceUpdate = false, bool isLockRotation = false, int entityId = 0, string targetPath = “”, string updateMode = “LateUpdate”)

简要说明

初始化拖动节点,一般情况下只需传入第一个参数,其它参数默认即可。

参数

参数名 类型 说明
path string 路径
isForceUpdate bool 是否实时更新(在该参数为true时,以下参数有效)
isLockRotation bool 是否锁定旋转
entityId int 器材实例ID
targetPath string 目标路径
updateMode string 设置更新时机【可选:Update、FixedUpdate、LateUpdate。默认:LateUpdate】

返回值

类型 说明
Component 执行交互的实例

可调用方法

// 设置更新模式(isForceUpdate == true)
void SetUpdateMode(string updateMode)
// 是否锁定相对位置(isForceUpdate == true)
void IsLockPosition(bool b, float process)

档位旋转

-- 档位旋转初始化
local excutor = self.VLabInteractiveNodeCtrl:InitGearRotation(xwjPath.GuangQuan, { XWJEnum.GuangQuanRot.DaGuangQuan, XWJEnum.GuangQuanRot.XiaoGuangQuan, XWJEnum.GuangQuanRot.ZhongGuangQuan }, 
    { xwjLanguage.GuangQuan.DaGuangQuan,xwjLanguage.GuangQuan.XiaoGuangQuan,xwjLanguage.GuangQuan.ZhongGuangQuan }, true)
self.VLabSlideRotateCtrl:AddNode(rotateId,excutor)

-- 查询当前档位
local index = excutor.QueryGear()

Component InitGearRotation(string path, LuaTable valueArray, LuaTable contentArray, bool isLoop = false)

简要说明

初始化档位旋转节点。

参数

参数名 类型 说明
path string 路径
valueArray LuaTable 档位旋转角度
contentArray LuaTable 每个档位对应的内容
isLoop isLoop 是否360度循环

返回值

类型 说明
Component 执行交互的实例

销毁

void DestroyComponent(Component component)

简要说明

销毁交互操作(目前需要搭配AgentComponent_VLabSlideRotateCtrl的DestroyComponent函数)

参数

参数名 类型 说明
component Component 初始化返回的组件