cout << "全局常量c_g_a地址为: " << (int)&c_g_a << endl; cout << "全局常量c_g_b地址为: " << (int)&c_g_b << endl; const int c_l_a = 10; const int c_l_b = 10; cout << "局部常量c_l_a地址为: " << (int)&c_l_a << endl; cout << "局部常量c_l_b地址...
第二种可以通过编码动态进行生成(动态创建),动态生成的Actor会持有有效的操作指针。 SpawnActor函数 UWorld 蓝图中SpawnActorOfClass 在C++中,我们需要通过UWorld指针进行创建。 在UWorld类中,我们可以找到多个生成Actor的函数。 对于重载函数,我们根据特定的情况进行选择即可! SpwanActor函数是个工厂函数。 UWorld | U...
ConstructorHelpers 类将尝试在内存中查找该资产,如果找不到,则进行加载 ConstructorHelpers只能在构造函数中使用,GameInstance中是 Init 函数(需要重载) 如果加载失败或是未找到资源,对象内的资产属性为null 如果加载蓝图类模版对象时,需要加注“_C” 查找加载 在只知道目标资源路径的基础上,进行运行时态的资源加载,UE提...
}//调用 Sum 求和函数时,会根据传入参数的数据类型不同,调用如上不同的重载函数//而当,不确定传入参数的数据类型时,C++提供了 “泛型编程” 的概念,申请任意一个符号类型(如 T)来代替未来将要传入的参数数据类型(效果如上)template<classT>//特殊情况下,有多个未知类型,则:template<classT,classT1,classT2>T...
lambda表达式(匿名函数) [捕获列表](参数)->返回值类型{函数体};// = 是按值的方式传递// & 是按引用的方式传递int32a;int32b;[=](){a;};[&a](){a=1;};[this](){};//mutable表示可修改autolambdaTest=[a,b](int32c)mutable->int32{a=b;};lambdaTest(123); ...
首先,应该知道不推荐从另一个组件添加组件;我想这不符合参与者/组件原则。也就是说,我可以通过重载On...
<cmath>: 这个头文件中只有浮点比较函数可以使用。 nullptr 所用情况下均使用 nullptr,而非C-style NULL 宏。 常量const的使用: 1) 不修改参数,常量指针或引用将传递函数参数 void SomeMutatingOperation(FThing& OutResult, const TArray<Int32>& InArray) ...
Class(类调用类) 02:53 FindObjectOfType(游戏运行时找到物体) 04:14 static方法(静态方法的使用) 05:30 方法重载(一个方法多种用法) 05:03 print(代码bug检察员) 03:37 野路子计时器(计时器) 04:02 Camera设置(摄像机镜头设置) 05:39 c语言里叫函数(方法) 13:12 Physics.Raycast Camera.ScreenPointToRay...
TSharedPtr 的.Get()方法将 TSharedPtr 转换成 C++ 原生指针。在访问 TSharedPtr 时,需要先通过.IsValid()或者.Get()判断共享指针是否有效。如果指针是无效的,调用重载的操作符->去获取值时,直接会导致断言(check)失败,将会导致奔溃。 FORCEINLINE
C++与Blueprint交互,代码里靠的是各种宏,下层靠的是引擎内部工具做自动化导出绑定,最终是C++代码与Blueprint虚拟机之间的事。(类似于C/C++与Lua之间) 学习使用记得遵循UE4的设计哲学(编程模型),先弄懂是什么,在来问为什么。 思维方式要从程序员转变为设计师,代码只是辅助工具而已。