Files
netease-modsdk-wiki/docs/mcguide/20-玩法开发/14-预设玩法编程/12-深入理解零件/6-零件开发规范.md
2025-03-18 14:46:12 +08:00

59 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 零件开发规范
## 目录与命名
当使用编辑器创建零件时会在行为包目录下的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环境。