跳到主要内容

自定义预制功能

除了官方提供的预制功能库,开发者也可以自己制作预制功能库。 开发者可以将自己多个项目中公用的功能,封装为一个『预制功能』,实现多项目的复用。
这里举一个简单的例子:

  1. 某开发者制作了一个『提示信息功能』,提供了『警告』、『报错』、『提示』这三类信息和对应样式的UI。
  2. 在项目中,开发者用语句『创建提示信息【信息文本】,信息类型为【信息类型】』可以随时创建需要的提示信息。
  3. 开发者将此功能封装为『预制功能』,在自己的多个项目中引入此预制功能,于是这些项目都可以使用语句『创建提示信息【信息文本】,信息类型为【信息类型】』随时创建需要的提示信息。

未来我们会提供将自定义预制功能作为免费、付费商品在社区商店分发的能力。

预制功能库的创建和使用

创建预制功能库

与正常创建项目一致,勾选预制功能模板,并起一个项目名称,然后随便创建一个测试触发器

添加本地预制功能库

保存并关闭预制功能库项目,接着打开需要使用预制功能库的目标项目

为方便使用,可以打开预制功能库项目中的project/mapsettings.json文件,修改MapDisplayName为预制功能库名字,便于辨认。![](000自定义依赖库/0.png)

在打开的项目中,打开预制功能库,选择添加本地预制功能库,找到刚才创建的预制功能库项目,选中project.sce文件,即可看到这个预制功能库像官方预制功能库一样被添加进了项目,并需要点击应用所有预制功能

注意!应用成功后,如果更改了预制功能库项目文件夹位置,需要重新添加预制功能库,若打开项目时报错无法重新添加,需要手动更改成新路径,保存在游戏项目中的local_libs.json文件里

应用成功后,预制功能库就已经被添加到项目里了,点击调试,可以在服务端log看到预制功能库中的触发语句被触发

此处需要注意这个log打印的位置是在预制功能库项目中的

上传预制功能

预制功能库调试完成后,点击发布->上传预制功能,上传成功后,此时预制功能在云端会生成新的版本,且在预制功能-社区Tab中,可以看到自己新上传的预制功能


注:虽然此时可以在『社区Tab』看到此预制功能,但是实际上,这个卡片依然是只有自己可见的,后续我们会进行进一步的功能更新,将个人可见的预制功能与社区的预制功能进行进一步的拆分。

上传预制功能到商店

在上一步提到的『上传预制功能』行为后,在创作者中心可以将其处理为在社区商店分发的商品。上传完成后需要等待后台人员审核,方可上架到社区资源中

目前这一功能仍在完善中,简单提一下先不做更多介绍。

下载预制功能(目前仍在完善中)

首先需要在社区资源中购买并下载对应的预制功能库

下载完成后的预制功能库可以在预制功能库的社区页签中找到

拖入左侧列表后,可以看到小卡片的右侧有一个版本号按钮,点击可以更改预制功能库版本号。切换版本号后,要重启编辑器后预制功能才会更新。 当预制功能库有发生更新后,也 不会 自动更新版本号,而是需要手动更新。因此需要主动关注预制功能库作者发布的版本相关信息,以防一些致命漏洞不能得到及时修复。

预制功能库触发器

预制功能库的触发器的加载时机早于游戏项目

在预制功能库中制作完触发编辑器内容后,在游戏项目中的触发编辑器,勾选显示预制功能库,就可以看到预制功能库的触发编辑器内容了。

注意在【游戏项目】内,修改【预制功能库项目】的触发编辑器,可以在调试中达到预期效果,但是并不能实际地修改到预制功能库项目中,需要再打开预制功能库项目进行修改与上传。

预制功能库中定义的全局变量可以在游戏项目中使用,但是在游戏项目中的触发器不能通过选择面板选中,只能从左侧列表中拖入,如果有需要可以定义成类的静态成员函数

预制功能库数编

数编的使用也与游戏项目内的数编基本一致,不过有以下几点特性

预制功能库蓝图前会显示预制功能库的名字

预制功能库蓝图无法删除,只能重置

预制功能库蓝图的link和游戏项目本身的link不一样,是【$$预制功能库项目id.】开头的

预制功能库界面

在预制功能库中创建的界面,会直接添加到界面编辑器中,其中main_page中添加的组件也会添加到游戏项目的main_page中。

然后直接使用客户端触发器使用即可。