# 零件开发规范
# 目录与命名
当使用编辑器创建零件时,会在行为包目录下的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环境。