# 逻辑编辑器的基础概念(4)

在学习使用了官方提供的各种零件接口和SDK接口之后,现在我们就可以尝试自己自定义一个接口啦。

# 什么是自定义接口

在大型玩法开发中,我们会发现有时候很多地方都需要调用相同的功能,执行除了参数以外,几乎一样的逻辑节点。那么自定义接口就可以很好地解决这个问题,我们可以自定义一个接口,并且定义接口内部执行的逻辑节点。并且自由地调用它。这样可以极大地简化我们的逻辑代码。

# 定义自定义接口

在逻辑编辑器中,我们在左侧可以看到自定义接口一栏。在这里就可以创建一个自定义接口。

点击自定义接口右侧的加号,就可以创建一个自定义接口。然后修改其名字,我们这里改成f_test,需要注意,自定义接口必须以f_开头。

并且在顶部可以看到Graph > f_test,代表我们正在编辑的接口。

点击Graph即可返回到原来的编辑界面。双击左侧的自定义接口中的f_test,即可返回这个自定义接口的编辑。

我们可以在这里编写我们需要的逻辑,从In的输入处开始执行,直到输出处的Out,就退出自定义函数。

自定义函数必须要从In到Out有一条完整的执行连线,否则无法正常工作。

例如我们在这里循环从1打印到100,然后链接输出。

这样就完成了自定义接口的编辑。我们回到Graph界面。

可以从左侧自定义接口中,选中f_test,并拖动到编辑界面中,就创建了一个节点调用我们的自定义接口。然后我们把它连接到服务端初始化之后来执行,查看日志窗口的输出效果。

可以看到像预期一样,从1打印到了100。

# 自定义接口的参数

自定义接口如果只是能像刚刚所做的那样,能把一部分节点,封装到一个接口中,进行调用,就会显得很死板,因为其中的值都被固定。

遇到这种情况,我们就可以给它创建一个参数,在外部调用这个接口的时候,将参数带入接口,就可以让这个接口的实用性大大提高。

在左侧自定义接口选中了要编辑的自定义接口后,右侧属性面板就会出现相应的配置。可以看到有一个inputParams栏,还有一个outputParams栏。

我们可以在这里新增输入和输出参数,让它在运行前传入一些值,在运行结束后,再传出一些值。

假如还是刚才的循环的自定义接口,我们希望传入参数,指定它从1循环到多少,我们就可以新增一个inputParams,点击加号新增。

如果我们还需要这个接口将某个运算结果传递回来,也可以新增一个outputParams,作为返回值。

我们这里先新增一个输入参数,定义它的名字为循环到,类型为int,然后再次回到自定义接口编辑处。就可以看到输入的节点多了一个循环到的端口,我们可以将它进行对应的参数传递,来达到预期的效果。

这样我们就可以在自定义接口外部定义需要循环多少次。现在就可以输入需要循环到的数字。

# Python模块

除了逻辑编辑器已经提供的接口外,我们还可以直接调用Python的内置模块,来实现更强大的功能。

细心的同学可能早就发现了,在我们的编辑器中,还有一个内置Python接口的分类,在这里可以调用一些Python提供的接口,例如对列表和字典的工具函数。

具体使用方法可以查阅Python的函数文档。

# 课后作业

实体受到伤害事件中,利用自定义接口 定义实体标识符手持物品名称物品列表三个参数,并重新实现攻击实体会随机掉落物品列表内的物品`的逻辑。

# 操作步骤

首先我们需要新建一个自定义接口,这里叫做f_dropRandomItem,并给它定义3个输入参数,物品列表的类型应该为list,但是这里并没有列出list,所以选择Any代表任意。

接下来我们可以把部分之前已经编写过的逻辑节点,复制到自定义接口中。然后对其连线进行调整。最后的效果如图:

完成配置后,再回到Graph中,直接将随机生成掉落物的逻辑节点,替换成调用自定义接口就可以了。

进阶

20分钟

什么是自定义接口

定义自定义接口

自定义接口的参数

Python模块

课后作业

操作步骤