[UE4]蓝图函数库小结

蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果。

蓝图函数库,Blueprint Function Library。可以非常方便的将代码中的函数暴露给所有的蓝图使用,同时也提供了很好的代码复用性。完成的蓝图函数库可以非常轻易的在其他项目中使用或者共享给其他人。由于在函数库中定义的所有函数都能在其他的蓝图中访问,可以说是和单例模式的C++代码接合的天然素材。也可以防止为了定义一些泛用的函数而频繁的使用接口继承。

使用起来也是非常的简单明了。类似下面的代码就可以完成一个蓝图函数库了。

#pragma once

#include "CoBpFuncLib.generated.h"

/** Blueprintable并不是必须的 */
UCLASS(Blueprintable)
class UCoBpFuncLib : public UBlueprintFunctionLibrary
{
    GENERATED_UCLASS_BODY()

public:
    /** <测试函数组 */
    UFUNCTION(BlueprintCallable, Category = "UCoBpFuncLib")
        static int32 GetHp();

    UFUNCTION(BlueprintCallable, Category = "UCoBpFuncLib")
        static void AddHp(int32 Val);
};

上面的是头文件,如果没有打算在蓝图中继承这个函数库的话可以选择去掉这个声明。

#include "CoBpFuncLib.h"
#include "LogicMisc/StateCenter.h"

//////////////////////////////////////////////////////////////////////////
// UCoBpFuncLib

UCoBpFuncLib::UCoBpFuncLib(const class FObjectInitializer& PCIP)
    : Super(PCIP)
{

}

int32 UCoBpFuncLib::GetHp()
{
    return StateCenter::sharedStateCenter()->miPlayerHp;
}

void UCoBpFuncLib::AddHp(int32 Val)
{
    StateCenter::sharedStateCenter()->miPlayerHp += Val;
}

上面的代码实现通过访问存储有miPlayerHp的单例来进行HP的访问和调整。编译后运行,随便打开一个蓝图都能访问到这两个函数。注意,上面代码中并没有给出StateCenter的定义,如果有想要直接尝试的童鞋请去掉相关的代码。

有了蓝图函数库,我们在进行游戏逻辑设计时就又多了很多选择。

原文地址:https://www.cnblogs.com/timy/p/8830938.html

时间: 2024-11-08 10:31:44

[UE4]蓝图函数库小结的相关文章

[UE4]C++调用蓝图函数:BlueprintImplementableEvent函数说明符用法

用BlueprintImplementableEvent标明的函数在C++代码中不需要有方法体,方法体在蓝图中实现. 用法: 1,现在C++头文件中定义函数名 UFUNCTION(BlueprintImplementableEvent) void OnDepleted(); 2,在蓝图中Add Event,找到对应的函数名,创建后即可实现具体逻辑 3,最后可以在自己的C++代码中调用该方法,这样就会自动调用蓝图函数 void MyActor::OnPressed() { OnDepleted()

ABP展现层——Javascript函数库

ABP展现层——Javascript函数库 点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate ASP.NET Boil

javaweb学习总结(三十)——EL函数库

一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库,如下所示: MyEclipse自带的JSTL开发包: fn.tld就是EL函数库的对应的tld描述文件,如下图所示: 在页面中使用JSTL定义的EL函数:<%@taglib uri="http://java.su

重温JSP学习笔记--El函数库

EL函数库(由JSTL提供的) * 导入标签库:<%@ tablib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> String toUpperCase(String input):把参数转换成大写 String toLowerCase(String input):把参数转换成小写 int indexOf(String input, String substring):从大串,输出小

curses不是linux里默认的C函数库

今天在调试一个贪吃蛇程序时,出现如下错误: [[email protected] c++]$ g++ snack.cpp -o snack/tmp/ccCuZ3Jm.o:在函数‘playgame(int, int)’中:snack.cpp:(.text+0xce):对‘erase’未定义的引用snack.cpp:(.text+0xed):对‘mvprintw’未定义的引用snack.cpp:(.text+0x140):对‘mvprintw’未定义的引用snack.cpp:(.text+0x166

Lua中的常用函数库汇总

lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调试信息 collectgarbage() - 垃圾收集器. (新增于1.10.1) date(format, time) - 返回当前用户机器上的时间. error("error message",level) - 发生错误时,输出一条定义的错误信息.使用pcall() (见下面)捕捉错误

PHP中的PDO函数库

PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高效. 目前而言,实现"数据库抽象层"任重而道远,使用PDO这样的"数据库访问抽象层"是一个不错的选择. PDO中包含三个预定义的类 PDO中包含三个预定义的类,它们分别是 PDO.PDOStatement 和 PDOException. 一.PDO PDO->be

php总结8——mysql函数库、增删改

8.1 mysql函数库 php的函数   .php中用来操作mysql函数库的函数 常用函数 mysql_connect("主机名称/ip","用户名","密码")--->建立php到mysql的连接,返回资源----> mysql_error()  返回上一个mysql操作的文本错误信息 @ 错误抑制符 一般来说,mysql_connect和mysql_error() 一起使用,用如下方式表示: <?php $link[em

机器学习实战之环境配置:windows系统下安装NumPy、SciPy和Matplotlib函数库

在科学和金融领域,SciPy和NumPy等科学函数库都实现了向量和矩阵操作,增加了代码的可读性,降低了阅读门槛:同时这两个库使用底层语言(C和Fortran)编写,提高了相关应用程序的计算性能,被广泛的应用.此外还有绘图工具Matplotlib,可以绘制2D/3D图形,也可以处理科学研究中经常使用到的图形. 三个库各自的下载地址↓ http://sourceforge.net/projects/numpy/files/NumPy http://sourceforge.net/projects/s