# 零件PartBase

# 概述

  • 继承关系
classDiagram
SdkInterface <|-- PartBase
link SdkInterface "../../../../mcdocs/3-PresetAPI/%E9%A2%84%E8%AE%BE%E5%AF%B9%E8%B1%A1/%E9%80%9A%E7%94%A8/SDK%E6%8E%A5%E5%8F%A3%E5%B0%81%E8%A3%85SdkInterface.html"
TransformObject <|-- PartBase
link TransformObject "../../../../mcdocs/3-PresetAPI/%E9%A2%84%E8%AE%BE%E5%AF%B9%E8%B1%A1/%E9%80%9A%E7%94%A8/%E5%8F%98%E6%8D%A2%E5%AF%B9%E8%B1%A1TransformObject.html"
GameObject <|-- TransformObject
link GameObject "../../../../mcdocs/3-PresetAPI/%E9%A2%84%E8%AE%BE%E5%AF%B9%E8%B1%A1/%E9%80%9A%E7%94%A8/%E6%B8%B8%E6%88%8F%E5%AF%B9%E8%B1%A1GameObject.html"
PartBase: 零件
SdkInterface: SDK接口封装
SdkInterface: (点击跳转)
TransformObject: 变换对象
TransformObject: (点击跳转)
GameObject: 游戏对象
GameObject: (点击跳转)
  • 描述

    PartBase(零件基类)是可以与零件进行绑定,而零件可以挂接在预设下,以实现带逻辑的预设的组装。所有的自定义零件都需要继承PartBase,预设系统下的大部分代码都需要写在自定义零件中。注意,自定义零件只有挂接到预设,并且在游戏中实例化才能生效。

  • 成员变量

    变量名
    数据类型
    说明
    tickEnable str 是否启用零件tick
    replicated list 启用网络复制的字段列表

# 索引

接口
描述
InitClient 客户端 客户端的零件对象初始化入口
InitServer 服务端 服务端的零件对象初始化入口
TickClient 客户端 客户端的零件对象逻辑驱动入口
TickServer 服务端 服务端的零件对象逻辑驱动入口
UnloadClient 客户端 客户端的零件对象卸载逻辑入口
UnloadServer 服务端 服务端的零件对象卸载逻辑入口
DestroyClient 客户端 客户端的零件对象销毁逻辑入口
DestroyServer 服务端 服务端的零件对象销毁逻辑入口
CanAdd 客户端/服务端 判断零件是否可以挂接到指定的父节点上
GetTickCount 客户端/服务端 获取当前帧数
LogDebug 客户端/服务端 打印msg % args调试日志,仅PC开发包有效
LogInfo 客户端/服务端 打印msg % args消息日志
LogError 客户端/服务端 打印msg % args错误日志
GetGameObjectById 客户端/服务端 获取指定对象ID的游戏对象
GetGameObjectByEntityId 客户端/服务端 获取指定实体ID的游戏对象
GetLoadedPlayers 客户端/服务端 获取服务器所有玩家的ID列表
GetPlayerObject 客户端/服务端 获取玩家对象
GetEntityObject 客户端/服务端 获取实体对象
GetEffectObject 客户端 获取特效对象
CreateEffectPreset 客户端 创建特效对象
CreateTextboardPreset 客户端 创建文字面板预设对象
ListenForEvent 客户端/服务端 监听指定的事件
UnListenForEvent 客户端/服务端 反监听指定的事件
ListenForEngineEvent 客户端/服务端 监听指定的引擎事件
UnListenForEngineEvent 客户端/服务端 反监听指定的引擎事件
CreateEventData 客户端/服务端 创建自定义事件的数据,eventData用于发送事件。创建的eventData可以理解为一个dict,可以嵌套赋值dict,list和基本数据类型,但不支持tuple
BroadcastEvent 客户端/服务端 广播事件,双端通用
BroadcastPresetSystemEvent 客户端/服务端 广播给预设系统
NotifyToServer 客户端 通知服务端触发事件
NotifyToClient 服务端 通知指定客户端触发事件
BroadcastToAllClient 服务端 通知指所有客户端触发事件
ListenSelfEvent 客户端/服务端 监听来自自己的事件
UnListenSelfEvent 客户端/服务端 反监听来自自己的事件
ListenPartEvent 客户端/服务端 监听来自指定零件的事件
UnListenPartEvent 客户端/服务端 反监听来自指定零件的事件
ListenPresetSystemEvent 客户端/服务端 监听来自预设系统的事件
UnListenPresetSystemEvent 客户端/服务端 反监听来自预设系统的事件
DestroyStoryLines 客户端/服务端 手动销毁零件蓝图
GetSelf 客户端/服务端 获取零件自身
GetApi 客户端/服务端 返回当前对象可使用的SDK API模块
IsPlayerSneaking 服务端 是否潜行
GetPlayerHunger 服务端 获取玩家饥饿度,展示在UI饥饿度进度条上,初始值为20,即每一个鸡腿代表2个饥饿度。 饱和度(saturation) :玩家当前饱和度,初始值为5,最大值始终为玩家当前饥饿度(hunger),该值直接影响玩家饥饿度(hunger)
1)增加方法:吃食物。
2)减少方法:每触发一次消耗事件,该值减少1,如果该值不大于0,直接把玩家 饥饿度(hunger) 减少1。
SetPlayerHunger 服务端 设置玩家饥饿度。

# InitClient

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    客户端的零件对象初始化入口

  • 参数

  • 返回值

# InitServer

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    服务端的零件对象初始化入口

  • 参数

  • 返回值

# TickClient

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    客户端的零件对象逻辑驱动入口

  • 参数

  • 返回值

# TickServer

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    服务端的零件对象逻辑驱动入口

  • 参数

  • 返回值

# UnloadClient

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    客户端的零件对象卸载逻辑入口

  • 参数

  • 返回值

# UnloadServer

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    服务端的零件对象卸载逻辑入口

  • 参数

  • 返回值

# DestroyClient

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    客户端的零件对象销毁逻辑入口

  • 参数

  • 返回值

# DestroyServer

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    服务端的零件对象销毁逻辑入口

  • 参数

  • 返回值

# CanAdd

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    判断零件是否可以挂接到指定的父节点上

  • 参数

    参数名
    数据类型
    说明
    parent PresetBase 即将挂接的父预设
  • 返回值

    数据类型
    说明
    str 不允许挂接时,返回对应的错误提示

# GetTickCount

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取当前帧数

  • 参数

  • 返回值

    数据类型
    说明
    int 当前帧数

# LogDebug

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    打印msg % args调试日志,仅PC开发包有效

  • 参数

    参数名
    数据类型
    说明
    msg str 要打印的格式化字符串
    *args list(object) 格式化参数列表
  • 返回值

  • 示例

self.LogDebug(“self.isClient: %s”, self.isClient)

# LogInfo

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    打印msg % args消息日志

  • 参数

    参数名
    数据类型
    说明
    msg str 要打印的格式化字符串
    *args list(object) 格式化参数列表
  • 返回值

  • 示例

self.LogInfo(“self.isClient: %s”, self.isClient)

# LogError

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    打印msg % args错误日志

  • 参数

    参数名
    数据类型
    说明
    msg str 要打印的格式化字符串
    *args list(object) 格式化参数列表
  • 返回值

  • 示例

self.LogError(“self.isClient: %s”, self.isClient)

# GetGameObjectById

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取指定对象ID的游戏对象

  • 参数

    参数名
    数据类型
    说明
    id int 指定的对象ID
  • 返回值

    数据类型
    说明
    TransformObject 成功返回游戏对象,失败返回None
  • 示例

obj = self.GetGameObjectById(0)

# GetGameObjectByEntityId

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取指定实体ID的游戏对象

  • 参数

    参数名
    数据类型
    说明
    entityId str 指定的实体ID
  • 返回值

    数据类型
    说明
    TransformObject 成功返回游戏对象,失败返回None
  • 示例

obj = self.GetGameObjectByEntityId(0)

# GetLoadedPlayers

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取服务器所有玩家的ID列表

  • 参数

  • 返回值

    数据类型
    说明
    list(str) 所有玩家的ID列表

# GetPlayerObject

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取玩家对象

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家ID
  • 返回值

    数据类型
    说明
    PlayerObject 成功返回玩家对象,失败返回None
  • 示例

player = self.GetPlayerObject(playerId)

# GetEntityObject

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取实体对象

  • 参数

    参数名
    数据类型
    说明
    entityId str 指定的实体ID
  • 返回值

    数据类型
    说明
    EntityObject 成功返回实体对象,失败返回None
  • 示例

entity = self.GetEntityObject(entityId)

# GetEffectObject

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取特效对象

  • 参数

    参数名
    数据类型
    说明
    effectId int 特效ID
  • 返回值

    数据类型
    说明
    EffectObject 成功返回特效对象,失败返回None
  • 示例

effect = self.GetEffectObject(effectId)

# CreateEffectPreset

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    创建特效对象

  • 参数

    参数名
    数据类型
    说明
    resource str 特效资源json
    pos tuple(float,float,float) 特效位置
    rotation tuple(float,float,float) 特效旋转
    scale tuple(float,float,float) 特效缩放
  • 返回值

    数据类型
    说明
    EffectPreset 成功返回特效对象,失败返回None
  • 示例

# 在某个实体位置播放指定特效
effect = self.CreateEffectPreset("effects/xxx", self.GetEntityPos(entityId))

# CreateTextboardPreset

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    创建文字面板预设对象

  • 参数

    参数名
    数据类型
    说明
    text str 文字显示内容
    textColor tuple(float,float,float,float) 文字颜色的RGBA值,范围0-1
    boardColor tuple(float,float,float,float) 可选参数,默认None,设置为黑色,面板颜色的RGBA值,范围0-1
    pos tuple(float,float,float) 可选参数,默认(0, 0, 0) 生成文字面板位置
    faceCamera bool 是否始终朝向相机, 默认为True
  • 返回值

    数据类型
    说明
    TextboardPreset 成功返回文字面板对象,失败返回None
  • 示例

# 在某个位置生成文字面板预设
textboard = self.CreateTextboardPreset('Hello', (0.5, 0.4, 0.3, 0.8))

# ListenForEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    监听指定的事件

  • 参数

    参数名
    数据类型
    说明
    namespace str 命名空间
    systemName str 事件系统名称
    eventName str 事件名称
    instance object 实例
    func object 函数
    priority str 优先级
  • 返回值

# UnListenForEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    反监听指定的事件

  • 参数

    参数名
    数据类型
    说明
    namespace str 命名空间
    systemName str 事件系统名称
    eventName str 事件名称
    instance object 实例
    func object 函数
    priority str 优先级
  • 返回值

# ListenForEngineEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    监听指定的引擎事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    instance object 实例
    func object 函数
    priority str 优先级
  • 返回值

# UnListenForEngineEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    反监听指定的引擎事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    instance object 实例
    func object 函数
    priority str 优先级
  • 返回值

# CreateEventData

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    创建自定义事件的数据,eventData用于发送事件。创建的eventData可以理解为一个dict,可以嵌套赋值dict,list和基本数据类型,但不支持tuple

  • 参数

  • 返回值

    数据类型
    说明
    dict 事件数据

# BroadcastEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    广播事件,双端通用

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    eventData object 事件数据
  • 返回值

# BroadcastPresetSystemEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    广播给预设系统

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    eventData object 事件数据
  • 返回值

# NotifyToServer

客户端

method in Preset.Model.PartBase.PartBase

  • 描述

    通知服务端触发事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    eventData object 事件数据
  • 返回值

# NotifyToClient

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    通知指定客户端触发事件

  • 参数

    参数名
    数据类型
    说明
    playerId str 玩家ID
    eventName str 事件名称
    eventData object 事件数据
  • 返回值

# BroadcastToAllClient

服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    通知指所有客户端触发事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    eventData object 事件数据
  • 返回值

# ListenSelfEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    监听来自自己的事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# UnListenSelfEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    反监听来自自己的事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# ListenPartEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    监听来自指定零件的事件

  • 参数

    参数名
    数据类型
    说明
    partId int 指定零件的ID
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# UnListenPartEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    反监听来自指定零件的事件

  • 参数

    参数名
    数据类型
    说明
    partId int 指定零件的ID
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# ListenPresetSystemEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    监听来自预设系统的事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# UnListenPresetSystemEvent

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    反监听来自预设系统的事件

  • 参数

    参数名
    数据类型
    说明
    eventName str 事件名称
    target object 目标
    func object 回调函数
  • 返回值

# DestroyStoryLines

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    手动销毁零件蓝图

  • 参数

  • 返回值

# GetSelf

客户端/服务端

method in Preset.Model.PartBase.PartBase

  • 描述

    获取零件自身

  • 参数

  • 返回值

    数据类型
    说明
    PartBase 零件自身

# GetApi

客户端/服务端

method in Preset.Model.SdkInterface.SdkInterface

  • 描述

    返回当前对象可使用的SDK API模块

  • 参数

  • 返回值

    数据类型
    说明
    extraClientApi或extraServerApi 返回当前对象可使用的SDK API模块

# IsPlayerSneaking

服务端

method in Preset.Model.SdkInterface.SdkInterface

  • 描述

    是否潜行

  • 参数

    参数名
    数据类型
    说明
    playerId str或int 实体id
  • 返回值

    数据类型
    说明
    bool 是否潜行
  • 示例

self.IsPlayerSneaking(playerId)

# GetPlayerHunger

服务端

method in Preset.Model.SdkInterface.SdkInterface

  • 描述

    获取玩家饥饿度,展示在UI饥饿度进度条上,初始值为20,即每一个鸡腿代表2个饥饿度。 饱和度(saturation) :玩家当前饱和度,初始值为5,最大值始终为玩家当前饥饿度(hunger),该值直接影响玩家饥饿度(hunger)
    1)增加方法:吃食物。
    2)减少方法:每触发一次消耗事件,该值减少1,如果该值不大于0,直接把玩家 饥饿度(hunger) 减少1。

  • 参数

    参数名
    数据类型
    说明
    playerId str或int 玩家id
  • 返回值

    数据类型
    说明
    float 玩家饥饿度
  • 示例

self.GetPlayerHunger(playerId)

# SetPlayerHunger

服务端

method in Preset.Model.SdkInterface.SdkInterface

  • 描述

    设置玩家饥饿度。

  • 参数

    参数名
    数据类型
    说明
    playerId str或int 玩家id
    value float 饥饿度
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

self.SetPlayerHunger(playerId, 10)