跳转到内容

FakeCharacter

客户端假人

可在客户端创建新的角色,并进行控制

函数列表

CreateCharacter

  • 描述: 在客户端上创建一个假人

  • 范围: 客户端

参数列表:

参数类型说明
PosEngine.Vector角色位置坐标
RotEngine.Rotator角色旋转
ScaleEngine.Vector角色缩放
RandomBodyboolean是否随机假人形象,默认为false

返回字段:

返回字段字段类型说明
characterIdnumber假人实例Id
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)

DestroyCharacter

  • 描述: 在客户端上销毁一个假人

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例Id
FakeCharacter:DestroyCharacter(characterId)

ChangeCharacterBody

  • 描述: 给假人替换上指定外观

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例Id
BodyIdsnumber[]部位Id数组
FakeCharacter:ChangeCharacterBody(CharacterId, BodyIds)

ChangeBodyFromPlayer

  • 描述: 将客户端假人角色形象替换为指定玩家

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
PlayerIdnumber玩家uid
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
local localPlayerId = Character:GetLocalPlayerId()
FakeCharacter:ChangeBodyFromPlayer(characterId, localPlayerId)

ChangeBodyFromNPC

  • 描述: 将客户端假人角色形象替换为指定NPC

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
ElementIdnumber地图场景中的npc元件实例id
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
FakeCharacter:ChangeBodyFromNPC(characterId, 343)

SetPosition

  • 描述: 设置客户端假人角色位置坐标

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
PosEngine.Vector位置坐标
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
FakeCharacter:SetPosition(characterId, Engine.Vector(1000, 1000, 200))

GetPosition

  • 描述: 返回假人实例位置

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id

返回字段:

返回字段字段类型说明
posEngine.Vector角色位置
local pos = FakeCharacter:GetPosition(characterId)

SetRotation

  • 描述: 设置客户端假人角色旋转

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
RotEngine.Rotator角色旋转
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
FakeCharacter:SetRotation(characterId, Engine.Rotator(0, 180, 0))

PlayAnim

  • 描述: 客户端假人播放动画

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
AnimNamestring动画名称
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
FakeCharacter:PlayAnim(characterId, "Donggan")

StopAnim

  • 描述: 客户端假人停止播放动画

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
AnimNamestring动画名称
local pos, rot, scale = Engine.Vector(0, 0, 200), Engine.Rotator(0, 0, 0), Engine.Vector(1, 1, 1)
local characterId = FakeCharacter:CreateCharacter(pos, rot, scale)
FakeCharacter:PlayAnim(characterId, "Donggan")
TimerManager:AddTimer(3, function()
FakeCharacter:StopAnim(characterId, "Donggan")
end)

CheckPartWithRaycast

  • 描述: 射线检测客户端假人精准部位

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
StartWorldPosEngine.Vector射线起始的世界坐标
EndWorldPosEngine.Vector射线终止的世界坐标
EnableDebugLineboolean是否绘制Debug射线(仅试玩),默认为false
DebugLineDurationnumberDebug射线的持续时间,单位秒,默认为1

返回字段:

返回字段字段类型说明
socketNameCharacter.SOCKET_NAME命中的部位,nil表示未命中
local startPos, endPos = Engine.Vector(-400,60,100), Engine.Vector(-600,60,0)
local socketName = FakeCharacter:CheckPartWithRaycast(self.characterId1, startPos, endPos, true, 100)

AddImpulse

  • 描述: 给角色添加向某个方向的力

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
ImpulseVectorEngine.Vector方向力
SocketNameCharacter.SOCKET_NAME骨骼名字,传入时将会对指认骨骼部位施加冲量(需开启全身物理模拟)
FakeCharacter:AddImpulse(characterId, impulse, Character.SOCKET_NAME.Head)

EnableSimulatePhysics

  • 描述: 是否开启角色全身物理模拟

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
Enablebooleantrue-开启,false-关闭
FakeCharacter:EnableSimulatePhysics(characterId, true)

GetSocketPosition

  • 描述: 获取角色骨骼的世界坐标位置

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
SocketNameCharacter.SOCKET_NAME骨骼名字

返回字段:

返回字段字段类型说明
worldPosEngine.Vector骨骼所在世界坐标位置
local pos = FakeCharacter:GetSocketPosition(characterId, SocketName)

GetSocketRotation

  • 描述: 获取角色骨骼的旋转

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
SocketNameCharacter.SOCKET_NAME骨骼名字

返回字段:

返回字段字段类型说明
rotEngine.Rotator骨骼旋转
local rot = FakeCharacter:GetSocketRotation(characterId, SocketName)

SetCharacterBoneRotator

  • 描述: 控制角色腰部骨骼角度

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
RotEngine.Rotator骨骼旋转角度,不传默认为(0,0,0),恢复为原样
FakeCharacter:SetCharacterBoneRotator(characterId, Engine.Rotator(45, 0, 0))

EnableRagdoll

  • 描述: 是否开启角色布娃娃效果

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
Enablebooleantrue-开启,false-关闭
FakeCharacter:EnableRagdoll(characterId, true)

SetAllBodiesBelowPhysicsBlendWeight

  • 描述: 设置角色指定骨骼物理动画混合权重

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
BoneNamestring骨骼名称
BlendWeightnumber混合权重
BIncludeSelfboolean是否包含自身
FakeCharacter:SetAllBodiesBelowPhysicsBlendWeight(characterId, true)

SetAllBodiesPhysicsBlendWeight

  • 描述: 设置角色全身物理动画混合权重

  • 范围: 客户端

参数列表:

参数类型说明
CharacterIdnumber假人实例id
BlendWeightnumber混合权重
FakeCharacter:SetAllBodiesPhysicsBlendWeight(characterId, true)