蓝图函数库小结

发表于2016-02-25
评论2 458浏览

想免费获取内部独家PPT资料库?观看行业大牛直播?点击加入腾讯游戏学院游戏程序行业精英群

711501594
  蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果。
  蓝图函数库,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的定义,如果有想要直接尝试的童鞋请去掉相关的代码。
  有了蓝图函数库,我们在进行游戏逻辑设计时就又多了很多选择。
  加入GAD的核心用户QQ群:484290331,各类活动奖励任你拿,最新资讯任你读,众多教学任你免费学,如此好地方赶紧加入吧!另VR专属群:476511561,专业VR技术分享,专业导师指导为你答疑解惑,大型小型活动奖励等你拿,免费学习赚奖励的天地,欢迎你加入哟!

原文链接

著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

游戏学院公众号二维码
腾讯游戏学院
微信公众号

提供更专业的游戏知识学习平台