属性声明 属性使用标准的C++变量语法声明,前面用UPROPERTY宏来定义属性元数据和变量说明符. UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)]) Type VariableName; 示例:位掩码 UENUM(BlueprintType) enum class EColorBits1 :uint8 { ECB_Red, ECB_Green, ECB_Blue, }; //使用"bitflags…
同步加载 同步加载会造成进程阻塞. FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder ConstructorHelpers::FClassFinder 参考 [UE4 C++ 基础知识]<10>资源的引用 LoadObject 一般用来加载资源对象 UMaterial* M_Cube = LoadObject<UMaterial>(nullptr, TEXT("Material'/…
UFunction声明 UFunction 是虚幻引擎4(UE4)反射系统可识别的C++函数.UObject 或蓝图函数库可将成员函数声明为UFunction,方法是将 UFUNCTION 宏放在头文件中函数声明上方的行中.宏将支持 函数说明符 更改UE4解译和使用函数的方式. 可利用函数说明符将UFunction对蓝图可视化脚本图表公开,以便开发者从蓝图资源调用或扩展UFunction,而无需更改C++代码.在类的默认属性中,UFunction可绑定到委托,从而能够执行一些操作(例如将操作与用…
"好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我个人来说先知道的是字段吧,,,刚开始一段时间一直觉得字段 是一个类型,是一个变量 ???(GG)那时候比较迷糊... 你觉得那个概念重要点呢? ***刚开始我觉得属性重要点,毕竟那时候概念还不太清楚; →有字段了为什么还要属性呢? ***0001.限制只能给字段赋于某个范围的值:0010.要求字段只能读或只能…
基本数据类型 TCHAR TCHAR就是UE4通过对char和wchar_t的封装 char ANSI编码 wchar_t 宽字符的Unicode编码 使用 TEXT() 宏包裹作为字面值 TCHAR* TCharString = TEXT("Hello, World!"); // 引擎字符串(TCHAR*) -> ANSI字符串(char*) char* CharString = TCHAR_TO_ANSI(TCharString); // 引擎字符串(TCHAR*) ->…
2种引用方式 硬引用(Hard Reference) 即对象 A 引用对象 B,并导致对象 B 在对象 A 加载时加载 硬引用过多会导致运行时很多暂时用不到的资源也被加载到内存中 大量资源会导致进程阻塞,致使程序情动事件过长 用不大的资源也在内存中,会占用内存 软引用(Soft Reference) 即对象 A 通过间接机制(例如字符串形式的对象路径)来引用对象 B 软引用可以减少加载负担,可以缩短程序启动时间 软引用不会主动加载到内存中,在需要时加载,用完释放 蓝图中的资源引用 C++ 中资源…
概述 UE4里,提供的多线程的方法: 继承 FRunnable 接口创建单个线程 创建 AsyncTask 调用线程池里面空闲的线程 通过 TaskGraph 系统来异步完成一些自定义任务 支持原生的多线程 std::thread 在GameThread线程之外的其他线程中 不要 spawning / modifying / deleting UObjects / AActors 不要使用定时器 TimerManager 不要使用任何绘制接口,例如 DrawDebugLine,然有可能崩溃 如果…
概念 定义 UE4中的delegate(委托)常用于解耦不同对象之间的关联:委托的触发者不与监听者有直接关联,两者通过委托对象间接地建立联系. 监听者通过将响应函数绑定到委托上,使得委托触发时立即收到通知,并进行相关逻辑处理. 委托,又称代理,本质是一个特殊类的对象,它内部可以储存(一个或多个)函数指针.调用参数和返回值. 蓝图示例 声明委托 委托签名声明可存在于全局范围内.命名空间内.甚至类声明内.此类声明可能不在于函数体内 可以是返回一个值的函数. 最多4个"载荷"变量. 最多8个…
枚举 UENUM宏搭配BlueprintType可以将枚举暴露给蓝图,不使用的话,仅能在C++使用 //定义一个原生enum class enum class EMyType { Type1, Type2, Type3, }; UENUM(BlueprintType) enum class ECurrentState : uint8 { Idle UMETA(DisplayName="空闲"), Attack UMETA(DisplayName="攻击"), Rol…
A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个WPF对象,并且源属性是一个依赖属性,.之所以使用依赖属性是因为属性内置了变更通知的支持. 1.Xaml 绑定 2.code绑定 C.绑定方向模式 1. OneWay:当源属性发生更改时,更新目标属性. 2.TwoWay:当源属性发生变化时,更新目标属性,当目标属性发生变化时,更新元属性. 3.One…