59 lines
2.0 KiB
Markdown
59 lines
2.0 KiB
Markdown
# 零件开发规范
|
||
|
||
## 目录与命名
|
||
|
||
当使用编辑器创建零件时,会在行为包目录下的Parts文件夹(若无会自动创建。下简称行为包Parts目录)下创建一个与.part文件同名的文件夹,与零件相关的三个文件都在该文件夹中,见[0-零件开发](0-零件开发.md)。该文件夹一旦确定不建议重命名,否则该零件将会失效。
|
||
|
||
由于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环境。
|
||
|