虚幻4 Function Library

转载地址:

http://blog.ch-wind.com/%E8%93%9D%E5%9B%BE%E5%87%BD%E6%95%B0%E5%BA%93%E5%B0%8F%E7%BB%93/

蓝图函数库小结

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

蓝图函数库,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的定义,如果有想要直接尝试的童鞋请去掉相关的代码。

image

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



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值