欢迎光临散文网 会员登陆 & 注册

UE4 --再次学习笔记(暂时封存)跑去学c++11、14、17 了

2023-01-16 12:50 作者:UE_AN_A  | 我要投稿

1.前缀表达(NewObject<>() , AClass::FuncName )

和反射相关

从所有游戏性对象的基础类进行延伸。

它们无法被实例到世界场景中,必须从属于 Actor。

总体而言,它们是与 组件 相似的对象。

A

从 可生成的 游戏性对象的基础类进行延伸。

它们是 Actor,可直接生成到世界场景中。

E   枚举

b   布尔

F   其他项(或者叫杂项)委托、FVector FRotator 都是这里面的

2. 类头文件是标准c++


3. UCLASS 修饰符 

UCLASS()

Abstract 抽象基类  不能被实例化 

Blueprintable 可蓝图化

BlueprintType 可用于在蓝图中指定改类


UPROPERTY()

VisibleAnywhere 

EditAnywhere 

BlueprintReadWrite 

BlueprintReadOnly 

UFUNCTION()

BlueprintCallable  c++ 中写 蓝图调用

BlueprintImplementableEvent 蓝图中实现 c++ 调用 

BlueprintNativeEvent   在c++ 中默认实现 

后面加入 _Implementation 如果在蓝图中有实现,则c++中的实现被覆盖

BlueprintPure    纯函数,没有执行线  一般只用于数值计算返回值

Delegate

单波委托:

DECLARE_DELEGATE_OneParam(DelgateName,OneParam)  一个参数无返回值类型的委托  

bind:

BindUFunction

BindUObject

BindStatic 

注意 bind 的时候的第一个参数 InUserObject  和FunName 填的是那个类的那个函数

一般InUserObject 是 NewObject<>(this)  ; 里面要填this  不然生成不了对象 

BindUFunction 这个 如果调用的UObject 的函数 则 NewObject<>() 就可以

如果调用的是Actor 之上(character、pawn)的函数 则需要NewObject<>(this)

BindUObject  这个   NewObject<>() 这样就可以

番外:Lambda表达式

语法:[捕获列表][mutable](函数参数)[->return type]{函数体}   

[捕获列表]    

= : 以值传递的方式  

& :以引用传递 

也可以单独说明捕获变量的名字 

this 这个类了的成员变量

默认是不能修改的,除非在()后加上muttable 

() 参数 --- 类似于函数参数

多播委托:


UE4 --再次学习笔记(暂时封存)跑去学c++11、14、17 了的评论 (共 条)

分享到微博请遵守国家法律