# 零件开发规范

# 目录与命名

当使用编辑器创建零件时,会在行为包目录下的Parts文件夹(若无会自动创建。下简称行为包Parts目录)下创建一个与.part文件同名的文件夹,与零件相关的三个文件都在该文件夹中,见0-零件开发。该文件夹一旦确定不建议重命名,否则该零件将会失效。

由于mod的脚本文件正常运行需要依赖modmain所在的脚本目录,因此零件文件夹会以快捷方式的形式链接进目前编辑mod中的第一个脚本目录下的Parts文件夹中(下简称脚本Parts目录),以保证零件代码的正常运行。当该mod在studio被导出时,该快捷方式将被切断,行为包Parts目录下的零件文件夹将被完整的复制进脚本Parts目录中,同时行为包Parts目录下的零件文件夹仅保留.part文件,脚本Parts目录中下的零件文件夹保留两个python文件。

# 保留字段

以下字段为零件基类所使用的成员变量,开发者覆写该保留字段会导致不可知的后果,请避免使用。

  • id

  • classType

  • isClient

  • filterKeys

  • _parent

  • entityId

  • boxId

  • name

  • transform

  • isRemoved

  • loaded

  • needUpdate

  • directoryPath

  • tickEnable

  • data

  • dataKeys

  • eventMap

  • replicated

# import与开发规范

  • 只支持零件主类的函数内修改,不能在主类的头部import

  • 由于零件类在编辑器内也会执行初始化逻辑,但编辑器和引擎运行环境不同,为了避免报错影响开发者,尽量避免在零件的初始化函数内编写逻辑。

  • 零件代码虽然只有一份,在游戏运行时是分为客户端和服务端两个实例,因此需要开发者时刻注意客户端零件代码和服务端零件代码的分离,避免出现客户端零件代码调用服务点sdk接口的问题。

  • 由于零件需要运行在游戏代码和编辑器代码中,因此零件代码需要兼容python2和python3环境。