1.Debug相关

LOG Debug

UE_LOG(LogTemp,Warning,Text(“Bginplay”));

在屏幕显示文字

GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Black,Text(“Beginplay”));

2.常用数据类型变化

int变为Int8 int16 int32 int64

string 变为 FString

新增FVector等类型

3.各继承类型前缀代表含义

A --Actor

F--Other

U--UE4

E--Enum

I--Interface

T--Template

S --Slate

4.宏 暴露变量给蓝图

UPROPERTY(EditAnywhere,BlueprintReadWrite,/*VisibleAnywhere,BlueprintReadOnly*/)Float Health = 100;

5.宏 暴露函数给蓝图

.h   //普通节点
UFUNCTION(BlueprintCallable, Category = “MyActorFunction”) //Category给节点分组void PrintAString(FString String, UPARAM(Ref) int32& a,FString& OutString);
.cpp
void AMyActor::PrintAString(FString String, UPARAM(Ref) int32& a,FString& OutString)    //通过UPARAM(Ref) 数据类型& 引用传入值
{GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Black,String);OnGetPrintString(string); //调用下面的可执行事件OutString = “OK”;  //通过FString&引用,获得返回值
}
.h   //事件节点类型1,不需要.cpp文件UFUNCTION(BlueprintImplementableEvent, Category = “MyActorFunction”) //不能在C++里写节点的内容Void OnGetPrintString(const FString& String);
.h //事件节点类型2UFUNCTION(BlueprintNativeEvent, /*BlueprintCallable,*/ Category = “MyActorFunction”) //可以在C++里写东西,但是会被蓝图覆盖,BlueprintCallable出来的节点内容会被该事件屏蔽Void OnGetPrintString(const FString& String);virtual void OnGetPrintString_Implementation(const FString& String);.cppvoid AMyActor::OnGetPrintString_Implementation(const FString& String){GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Green,String);}
.hUFUNCTION(BlueprintPure) //BlueprintPure定义纯函数,一般都有返回值float GetHealth();.cppfloat AMyActor::GetHealth() //可借鉴const FString& String返回多个值{return Health;}

6.多播代理

.h#include下方定义DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMyDelegate, FString,Sting);UPROPERTY(BlueprintAssignable)FMyDelegate MyDelegate;.cppVoid AMyActor::BeginPlay()//例如在BeginPlay时引用{Super::BeginPlay();MyDelegate.Broadcast(“BeginPlay”);}

7.单播代理

.h#include下方定义DECLARE_DYNAMIC_DELEGATE_OneParam(FMyDelegateOne, float,Sting);UFUNCTION(BlueprintCallable)void DelegateTest(FMyDelegateOne MyDelegateOne);.cppVoid AMyActor::DelegateTest(FMyDelegateOne MyDelegateOne){HealthPercentage = Health/MaxHealth;DelegateOne.Execute(Healthpercentage);}

8.结构体

.h#include下方定义USTRUCT(BuleprintType)struct FHealth{GENERATED_BODY()UPROPERTY(EditAnywhere,BlueprintReadWrite)Float Health = 100;UPROPERTY(EditAnywhere,BlueprintReadWrite)Float MaxHealth = 100;UPROPERTY(VisibleAnywhere,BlueprintReadOnly)Float HealthPercentage = Health / MaxHealth;};UPROPERTY(EditAnywhere,BlueprintReadWrite)FHealth HealthS; //C++使用时可HealthS.Healthu提取,蓝图使用时可直接调用也可先Split Struct Pin解开结构体

9.枚举

.h#include下方定义UENUM(BuleprintType)enum class EMyENumType :uint8{Data1, //蓝图创建Enum变量,get变,switch提取变量E_Data2 UMETA=(DisplayName=”Data2”), //蓝图中屏蔽E_前缀,便于在代码中区分变量,而蓝图中仍显示为Data2Data3,//...};UPROPERTY(EditAnywhere,BlueprintReadWrite)EMyENumType MyENumType = EMyENumType::Data1;

10.数组

.hUFUNCTION(BlueprintCallable)void PrintAllString(TArray<FString> StringArray);.cppVoid PrintAllString(TArray<FString> StringArray){For(FString Each : StringArray) //等同于FoeEachLoop{GEngine->AddOnScreenDebugMessage(-1,5.f,FColor::Green,Each);}}

11.元数据说明符

.h //使用方法UFUNCTION(BlueprintPure,meta=(displayname = “CustomName”,Keywords=”CustomKeywords”, DevelopmentOnly/*,...*/)) //meta=(按所需功能填写)Float MyFunction().cppFloat AMyActor::MyFunction(){Return 0.f;}
.h //一个例子,给蓝图引脚定义默认值UFUNCTION(BlueprintCallable,meta=(AutoCreateRefTerm="b")) //不添加AutoCreateRefTerm则引脚必须从上一节点处获取参数void MyInput(int a, UPARAM(Ref) int32& b);.cppvoid AMyActor::MyInput(int a, UPARAM(Ref) int32& b) //通过UPARAM(Ref) 数据类型& 引用 在蓝图中传入值{ //随便写}

以上内容参考自@暂无名讳和官方文档

UE4 C++常用代码及格式相关推荐

  1. java qlv转mp4 代码_独家的kux如何转成常用的mp4格式?快速将kux转mp4的技巧

    如何将kux转mp4?kux是优酷独家的视频格式,和qsv.qlv一样只能用自家播放器打开.当你在没有特点播放器的情况下kux格式的文件是不能直接打开的,遇到这类情况时大多数小伙伴会把独家的kux转换 ...

  2. 收藏!PyTorch常用代码段合集

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Jack Stark,来源:极市平台 来源丨https://zhu ...

  3. PyTorch常用代码段合集

    ↑ 点击蓝字 关注视学算法 作者丨Jack Stark@知乎 来源丨https://zhuanlan.zhihu.com/p/104019160 极市导读 本文是PyTorch常用代码段合集,涵盖基本 ...

  4. JavaScript常用代码

    在这存一下JavaScript常用代码: 1.封装输出 1 var log = function() { 2 console.log.apply(console, arguments) 3 } 4 5 ...

  5. 常用代码整理(重要)

    常用代码整理: 1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex ...

  6. 【深度学习】PyTorch常用代码段合集

    来源 | 极市平台,机器学习算法与自然语言处理 本文是PyTorch常用代码段合集,涵盖基本配置.张量处理.模型定义与操作.数据处理.模型训练与测试等5个方面,还给出了多个值得注意的Tips,内容非常 ...

  7. android 环境配置和安装, Android系统包说明,基本控件,常用代码,ADB 命令行,APK文件确解,小技艺,...

    一.             环境配置和安装(Android2.2) 参考文章:这里 1.1     JDK 1.2     SDK 下载地址:http://dl.google.com/android ...

  8. pytorch list转tensor_PyTorch 52.PyTorch常用代码段合集

    本文参考于: Jack Stark:[深度学习框架]PyTorch常用代码段​zhuanlan.zhihu.com 1. 基本配置 导入包和版本查询: import torch import torc ...

  9. 程序员必须知道的HTML常用代码有哪些?

    HTML即超文本标记语言,是目前应用最为广泛的语言之一,是组成一个网页的主要语言.在现今这个HTML5华丽丽地占领了整个互联网的时候,如果想要通过网页抓住浏览者的眼球光靠因循守旧是不行的,程序猿们需要 ...

最新文章

  1. 老年机按键串号_2019年最适合买的老人机——AGM M5,4G全网通+支持微信
  2. Excel VBA开发中数字签名的管理
  3. China Linux Kernel-ppt
  4. 从壹开始 [ Id4 ] 之一║ 授权服务器 IdentityServer4 开篇讲计划书
  5. 写给即将过去的2012
  6. python声音捕获_在Python中实现实时信号处理如何连续捕获音频?
  7. Spring的入门学习笔记 (注解)
  8. 数组中每个元素都出现了两次,但是其中一个元素只出现了一次,求出此元素
  9. (每日一题 day 003 - 二维前缀和+动态规划) 1314. 矩阵区域和
  10. 更适合私有云的网络部署模式-动态路由
  11. html小写数字怎么转换大写,如何将数字123转化成大写的文字 一百二十三 或 一二三?...
  12. Nodejs设备接入阿里云IoT平台
  13. 省市定位(省市区三级联动插件Distpicker)
  14. HTTP与HTTPS请求过程
  15. Erueka状态变更说明(十三)
  16. 带你开发一款给Apk中自动注入代码工具icodetools(完善篇)
  17. SptingBoot构建电商基础秒杀项目时遇到的问题
  18. 科目二 座椅调节 记录
  19. Vue 自定义富文本编辑器 tinymce 支持导入 word 模板
  20. 通过 U 盘启动重装 macOS 系统

热门文章

  1. arduino 与java通信_在Java应用程序与Arduino Uno之间建立串口连接
  2. 第二十九章 OOTV杯超级模式大赛-模式总结(读书笔记)
  3. Linux入门(6)- SecureCRT 和 SecureFX 的使用
  4. 连续系统的时域分析(一)LTI连续系统微分方程解法3——零状态响应的求解方法
  5. 成为zabbix合作伙伴费用及意义
  6. JAVA中如何精确取到时间间隔
  7. 2020-10《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
  8. Java Date Calendar类的使用 如何计算两个日期之间有多少天
  9. 使用protobuf作为游戏网络通讯的协议
  10. sqlDbx连接oracle64位