蓝图类型(8) —— 蓝图宏

简述
蓝图宏和和函数一样,都是对一些功能算法进行了封装,它们都有一个输入点和输出点,调用方法也类似
创建蓝图宏
蓝图宏可以在蓝图类,关卡节点和宏库中创建,这里我门在关卡蓝图中创建,打开关卡蓝图,转到My Blueprint面板,点击Macros后面的“+”,创建蓝图宏,命名为Macro_0

双击Macro_0,打开蓝图宏,默认有一个输入节点和一个输出节点

转到蓝图宏的Details面板,这里可以设置蓝图宏的属性,输入和输出。用法基本和函数类似

属性设置和描述 

属性

描述

Description

该函数功能的说明和描述

Category

该函数类别

Keywords

关键字,可以通过它搜索函数

Compact Node Title

函数名称,该名称是绘制在函数节点上的

Instance Color

该蓝图宏的颜色

Call In Editor

添加输入输出
蓝图宏的输入输出完全可以自定义,输入输出执行点可以是多个或者没有,而函数的输入输出执行点为1个,分别
点击Inputs和Outputs后面的“+”添加输入输出

接下来就要写具体的实现了,这里简单的实现一些字符串的拼接

蓝图宏写完后,开始使用它,来到事件图标
点击右键搜索蓝图宏Macro_0,添加事件节点,测试蓝图宏

编译保存,点击play运行,按下“1”键盘,打印”hello macro”

蓝图宏库
顾名思义,就是存放多个蓝图宏的容器,在关口蓝图或蓝图类中定义的宏只能自己引用,而蓝图宏库中定义的宏,可以全局引用(同基类的可以)
创建蓝图宏库
转到主界面的内容浏览器上,在空白处 右击 -> Blueprints -> Blueprints Macro Library,

点击完成后,弹出父类选择窗口,这和创建蓝图类时选择父类是一摸一样的,选择父类后,直接或间接继承该父类的蓝图类都可以在全局引用该宏库中的宏,否者无法引用。如宏库选择Actor为父类时,以后继承Actor或Pawn的蓝图类都可以引用,而继承Actor Component的蓝图类则不能引用,在这里选择Actor为父类

创建成功后,该宏库命名MacroLibrary

创建好蓝图宏库后,该往里面添加蓝图宏了,双击MacroLibrary打开蓝图宏库

界面看起来比较简单,其实真的比较简单,点击Macros后面的“+”,添加两个蓝图宏,分别命名为MacroOne和MacroTwo

在宏库中创建的蓝图宏和在关卡蓝图中创建的是一摸一样的,包括它的定义,实现,使用。
这里实现一个没有输入输出执行点宏,只对传入值进行数学计算,如计算值一个值的立方

蓝图宏库的使用
创建个继承Pawn的蓝图类来测试下蓝图宏库的使用,命名为TestPawn,打开TestPawn,在事件图标中搜索,发现是可以找到的

点击MacroTwo,使用该蓝图宏,在BeginPlay事件触发的时候打印10的立方(需要将TestPawn拖入到关卡中进行实例化)

编译保存,点击play运行程序,左上角会打印1000

如果我们在关卡蓝图中是否可以引用该蓝图宏库呢?当可以了,因为关口蓝图其实也是继承自Actor,但是如果继承自ActorComponent的蓝图类就无法引用该蓝图宏库,大家可以去测试一下

猜你喜欢

转载自blog.csdn.net/niu2212035673/article/details/80210904