图元脚本

什么是图元脚本

image-20250402145046440

您是否见过,Free Fire的角色头部变得很大?

这个效果是使用强大的图元脚本实现的

image-20250402192617114

图元脚本是一种可视化编程方式,使用图元脚本,您可以编写高度自定义的游戏逻辑。

入口

您可以从更多菜单下找到图元脚本的入口。

image-20250402145458469

image-20250402145643612

还有一些位置也可以进入图元脚本编辑界面,您可以在基础设置、编辑游戏规则的属性设置下找到图元脚本的入口,它们所进入的编辑界面是共通的。

图元基本介绍

编辑器

首先,我们可以看到图元编辑器中的重要区域。

image-20250402181900017

左侧是不同分类的所有可用图元,中央是我们称为“画布”的编辑场景,图元需要拖放到画布中才会生效。

图元的分类

图元最核心的分类有两种:

  1. 事件,事件决定什么时候触发逻辑,比如每当玩家加入游戏时、当回合开始时。当前脚本可用事件均在红色的图元分类中
  2. 动作,动作是对游戏发出的指令,在我们的例子里,我们需要的动作就是让角色的头变大!在绿色和蓝色的图元分类中您可以找到绝大多数动作。

使用图元

从左侧按住图元,向画布中拖动,就可以在当前脚本下使用这个图元。

image-20250402182437921 image-20250402182455584

图元和图元之间可以像积木一样连接起来。

image-20250402182616637 image-20250402182630147

操作图元

选中

点击图元会选中图元,同时画布正下方会出现图元操作面板,选中的图元是高亮的。

image-20250402184106420

删除

点击删除,会从整块图元中删除选中的图元,下方图元会自动向上填充。

image-20250402184414500

您也可以将一块连起来的图元拖入右侧删除。

image-20250402184634175 image-20250402184645257

撤销和重做

担心误操作?右侧的快捷菜单中,可以撤销或重做您对图元脚本的所有改动:

image-20250402184455422

图元数据

你可能发现了,图元上有各种色块和加号。这代表了这个图元可以为其下方图元提供的数据,和它本身需要的数据。

image-20250402160101108

一些需要的数据已经帮您填入了一个默认值啦,比如上图的“Auto Play”

每个图元都有独特的逻辑,提供的数据和需要的数据的数据类型也是不一样的。有时候,我们要使用数据图元、变量甚至函数等手段提供和接受数据哦。游戏说到底是一大堆数据的运算呢。

让角色的头变大

已经了解了如何操作图元,接下来跟着我,我们一起让您的地图内的角色的头变大吧!

我们最终只需要完成这样的图元脚本:

image-20250402192617114

不要被长度吓到了,核心只是将头部的缩放设置为默认的三倍大。

image-20250402192733907

首先,准备好我们要用的图元吧:

image-20250402151812785

调整头部缩放是一个较为复杂的操作,因为您不能直接从玩家属性里获得玩家头部的缩放,所以我们需要Get property帮助我们取得不能直接从Set property上读取的属性。

我们使用Get property获取玩家的骨骼:

image-20250402153444311

Get property的目标Entity是从On Player Join上拖下来的,含义是:每当玩家加入游戏时,获取这位加入游戏的玩家的属性。

把获取到的骨骼作为目标Entity,继续获取“头部”

image-20250402153810754

把上面获取到的“头部”拖入Set property,选择属性为“Skeleton Scale”:

image-20250402154010766

点击Value后的加号,从左侧选择Vector3赋值图元。

image-20250402154128112

将X、Y、Z都填入3。

image-20250402154314494

Vector3是由三个数字组成的一种数据类型,在这里,骨骼默认的缩放值是(1,1,1),填入(3,3,3)表示头部在3D空间三个维度都放大三倍。您也可以尝试填入不同的数字组合查看实际表现。

最后,让我们把Set Property图元和On Player Join图元连接起来,记得图元只有连接起来的才是一块整体,逻辑才能通畅运行喔。

image-20250402154557829

点击调试,让我们进入游戏看看表现吧:

image-20250402154750511

image-20250402154804522 image-20250402154814476

图元脚本还有更强大的功能等待您的发掘。

不同的脚本

同样的一块图元,在不同的脚本上表现可能会是不一样的!

这是因为除了我们刚才使用的“全局脚本”,每位玩家都会有一个“玩家脚本”、每个队伍也会有一个“队伍脚本”。如果您愿意,甚至场景中的物件、道具等也都可以为其添加脚本喔。

脚本在自身所在的实体上发挥作用,如果将On Player Join这样的事件放在“玩家脚本上”,那么每当一位玩家加入,场上所有玩家(包括新加入的玩家)都会响应这个事件。如果我们的图元是当玩家加入时给他发一个M4A1,如果放在全局脚本,那么每位玩家都会有一个M4A1;如果放在玩家脚本里,每位玩家都会给新来的玩家发一个M4A1,新玩家的枪会多到拿不下!