碰撞摆

1 AgentComponent_CollisionPendulum

碰撞摆包含三个状态,停止、整体移动、摆动。它始终处于这三个状态其中一个。

1.1 方法

1.1.1 Init(System.String,System.String,System.Single,System.String,System.String)

初始化碰撞摆,要求悬挂点的缩放为1,无旋转

参数列表:

名称 类型 描述
leftHangObj System.String 左侧悬挂点路径
rightHangObj System.String 右侧悬挂点路径
length System.Single 摆长
leftBall System.String 左侧小球路径
rightBall System.String 右侧小球路径

1.1.2 SetBallMass(System.Single,System.Single)

设置小球的质量

参数列表:

名称 类型 描述
leftMass System.Single 左边小球的质量
rightMass System.Single 右边小球的质量

1.1.3 SetBallTape(System.Boolean,System.Boolean)

设置小球是否有贴胶布

参数列表:

名称 类型 描述
leftTape System.Boolean 左边小球是否贴胶布
rightTape System.Boolean 右边小球是否贴胶布

1.1.4 SetAbreastRoot(System.String)

设置计算协同摆动的根物体

参数列表:

名称 类型 描述
root System.String 根物体路径,要求根物体相对于器材本身无旋转

1.1.5 BeginSwing

开启摆动,进入摆动状态,会使用当前两个小球与中线的夹角初始化它们的摆动幅度。

返回值:

类型 描述
如果当前已经在摆动会返回false

1.1.6 Reset

重置,进入停止状态,小球会静止于正下方

1.1.7 BeginMove

进入移动状态,调用此方法后小球会随着器材的拖动晃动

返回值:

类型 描述
如果当前已经在移动或者摆动状态,返回false

1.1.8 EndMove

中止移动状态,调用此方法后会自动调用BeginSwing方法,小球开始协同摆动

返回值:

类型 描述
如果当前不处于移动状态,返回false

1.1.9 RegLeftMaxWPosCallback(NLua.LuaFunction)

注册左侧小球达到左侧最高点时的回调,传入null清除注册

参数列表:

名称 类型 描述
func NLua.LuaFunction 参数为Vector3,世界坐标

1.1.10 RegRightMaxWPosCallback(NLua.LuaFunction)

注册右侧小球达到右侧最高点时的回调,传入null清除注册

参数列表:

名称 类型 描述
func NLua.LuaFunction 参数为Vector3,世界坐标

1.1.11 SetAbreastDamping(System.Single)

重新设置碰撞摆整体移动时,小球协同晃动角度的衰减速度

参数列表:

名称 类型 描述
damping System.Single 默认值为1

1.1.12 SetAbreastScale(System.Single)

重新设置碰撞摆整体移动时,小球协同晃动角度的随位移量的增涨速度

参数列表:

名称 类型 描述
scale System.Single 默认值为10

1.1.13 GetStatus

获取碰撞摆当前的状态

返回值:

类型 描述
0停止,1摆动,2整体移动

1.1.14 SetLossRate(System.Single,System.Single,System.Single,System.Single)

重新设置摆动时的能量损失

参数列表:

名称 类型 描述
noTape System.Single 两小球均无胶布时的碰撞损失,默认值0.05
tape1 System.Single 有一个小球有胶布时的碰撞损失,默认值0.5
tape2 System.Single 两个小球均有胶布时的碰撞损失,默认值0.8
abreast System.Single 协同摆动损失缩放系数,默认值1。这个值会与碰撞损失率相乘来计算协同摆动的损失率,例如无胶布时:损失率=abreast*noTape

1.1.15 GetLeftMaxAngle

获取左侧最大角度,最好在MaxWPosCallback中获取

返回值:

类型 描述
左侧最大角度,是一个负值

1.1.16 GetRightMaxAngle

获取右侧最大角度,最好在MaxWPosCallback中获取

返回值:

类型 描述
右侧最大角度,是一个正值