FakeCharacter
客户端假人
可在客户端创建新的角色,并进行控制函数列表
CreateCharacter
-
描述: 在客户端上创建一个假人
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| Pos | Engine.Vector | 角色位置坐标 |
| Rot | Engine.Rotator | 角色旋转 |
| Scale | Engine.Vector | 角色缩放 |
| RandomBody | boolean | 是否随机假人形象,默认为false |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| characterId | number | 假人实例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
-
描述: 在客户端上销毁一个假人
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例Id |
FakeCharacter:DestroyCharacter(characterId)ChangeCharacterBody
-
描述: 给假人替换上指定外观
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例Id |
| BodyIds | number[] | 部位Id数组 |
FakeCharacter:ChangeCharacterBody(CharacterId, BodyIds)ChangeBodyFromPlayer
-
描述: 将客户端假人角色形象替换为指定玩家
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| PlayerId | number | 玩家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
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| ElementId | number | 地图场景中的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
-
描述: 设置客户端假人角色位置坐标
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| Pos | Engine.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
-
描述: 返回假人实例位置
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| pos | Engine.Vector | 角色位置 |
local pos = FakeCharacter:GetPosition(characterId)SetRotation
-
描述: 设置客户端假人角色旋转
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| Rot | Engine.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
-
描述: 客户端假人播放动画
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| AnimName | string | 动画名称 |
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
-
描述: 客户端假人停止播放动画
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| AnimName | string | 动画名称 |
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
-
描述: 射线检测客户端假人精准部位
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| StartWorldPos | Engine.Vector | 射线起始的世界坐标 |
| EndWorldPos | Engine.Vector | 射线终止的世界坐标 |
| EnableDebugLine | boolean | 是否绘制Debug射线(仅试玩),默认为false |
| DebugLineDuration | number | Debug射线的持续时间,单位秒,默认为1 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| socketName | Character.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
-
描述: 给角色添加向某个方向的力
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| ImpulseVector | Engine.Vector | 方向力 |
| SocketName | Character.SOCKET_NAME | 骨骼名字,传入时将会对指认骨骼部位施加冲量(需开启全身物理模拟) |
FakeCharacter:AddImpulse(characterId, impulse, Character.SOCKET_NAME.Head)EnableSimulatePhysics
-
描述: 是否开启角色全身物理模拟
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| Enable | boolean | true-开启,false-关闭 |
FakeCharacter:EnableSimulatePhysics(characterId, true)GetSocketPosition
-
描述: 获取角色骨骼的世界坐标位置
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| SocketName | Character.SOCKET_NAME | 骨骼名字 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| worldPos | Engine.Vector | 骨骼所在世界坐标位置 |
local pos = FakeCharacter:GetSocketPosition(characterId, SocketName)GetSocketRotation
-
描述: 获取角色骨骼的旋转
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| SocketName | Character.SOCKET_NAME | 骨骼名字 |
返回字段:
| 返回字段 | 字段类型 | 说明 |
|---|---|---|
| rot | Engine.Rotator | 骨骼旋转 |
local rot = FakeCharacter:GetSocketRotation(characterId, SocketName)SetCharacterBoneRotator
-
描述: 控制角色腰部骨骼角度
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| Rot | Engine.Rotator | 骨骼旋转角度,不传默认为(0,0,0),恢复为原样 |
FakeCharacter:SetCharacterBoneRotator(characterId, Engine.Rotator(45, 0, 0))EnableRagdoll
-
描述: 是否开启角色布娃娃效果
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| Enable | boolean | true-开启,false-关闭 |
FakeCharacter:EnableRagdoll(characterId, true)SetAllBodiesBelowPhysicsBlendWeight
-
描述: 设置角色指定骨骼物理动画混合权重
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| BoneName | string | 骨骼名称 |
| BlendWeight | number | 混合权重 |
| BIncludeSelf | boolean | 是否包含自身 |
FakeCharacter:SetAllBodiesBelowPhysicsBlendWeight(characterId, true)SetAllBodiesPhysicsBlendWeight
-
描述: 设置角色全身物理动画混合权重
-
范围: 客户端
参数列表:
| 参数 | 类型 | 说明 |
|---|---|---|
| CharacterId | number | 假人实例id |
| BlendWeight | number | 混合权重 |
FakeCharacter:SetAllBodiesPhysicsBlendWeight(characterId, true)