普通指针不具备自动管理内存的功能,需要手动调用delete来释放内存。 如果将普通指针直接赋值给智能指针,会导致同一个内存块被智能指针和普通指针同时管理,从而可能导致悬空指针、内存重复释放等严重问题。 TObjectPtr介绍 用于管理对 UObject(Unreal Object)对象的指针。 提供了一些方便的功能,例如自动释放、空指针检查和...
//1. 使用Address表示获取FString类型参数Adddress底层C字符串指针类型(const char类型) //2. 通过FNanme构造函数,将其转换为了FName类型 //3. 将其传给OpenLevel函数 //通过this,在当前世界中,打开对应路径的关卡地图 //这里的Address是IP地址 //值得注意的是:官方给出的第二个值,应该是给的关卡地址,意思...
这套课程虽然是UEC++基础的入门课程,但是里面不会讲解C++基础语法,比如什么是指针什么是引用,for循环以及虚函数,模板等内容。 当您入门本套课程,就默认您已经拥有了这些基础能力,只是对UE5C++API了解不多。 如果您完全零基础,建议先看我们的前置课程手把手入门硬核C和手把手入门c STD和手把手入门硬核C++。 现在我们...
↑ 正因如此,FObjectPtr/TObjectPtr在编辑器下不再像UObject*裸指针一样,仅仅只持有UObject对象的内存地址,而是根据指针值的最低位进行区分:如果最低位不是1,则其表示真实的内存地址,此时与UObject*裸指针没有区别;反之其中保存编码后的UObject的静态信息,如所属Package的FName、引用关系(即UObject的Path等)。...
如果用蓝图做还容易错,正好最近在学UEC++,不如查查看有没有什么用C++批量改参数的方法,在论坛一顿搜索之后发现了这篇(https://forums.unrealengine.com/t/reading-struct-attributes-in-c/471834/2),又看到了大钊老师在知乎上InsideUnreal中对反射的讲解(https://zhuanlan.zhihu.com/p/61042237),那不如用C++整...
auto f = fopen(fileName.c_str(), "w+"); fprintf(f, "%s", save); fclose(f); } 而在读档时,我们编写的代码则如下(存档的相反操作): //反序列化存档 void UnserializeSaveData(string save) { vector<const char*>states = split(save, SAVE_...
其实我们每个三角形就用一个bit,表示我这个index是不是不连续下去要重新开始算,并且另外一个bit表示重新开始算的朝向的是减还是加,这样顶点数据跨culster的去重,做过这样的操作后,我们磁盘上的压缩率是非常非常高的。当然,我们还在探索进一步压缩的可能性。Nanite的未来与其他 由于时间关系, 借助Nanite其他的一些...
Append可一次性添加其他 TArray 中的多个元素,或者指向常规C数组的指针及该数组的大小 hljs code FString Arr[] = { TEXT("of"), TEXT("Tomorrow") }; StrArr.Append(Arr, ARRAY_COUNT(Arr));//StrArr == ["Hello","World","of","Tomorrow"] ...
nullptr 所用情况下均使用 nullptr,而非C-style NULL 宏。 常量const的使用: 1) 不修改参数,常量指针或引用将传递函数参数 void SomeMutatingOperation(FThing& OutResult, const TArray<Int32>& InArray) 2)方法不修改对象,将方法标记为常量 void FThing::SomeNonMutatingOperation() const ...