大象无形 02.Unreal C++编程基础

命名规则

添加前缀以区别类型:

F:纯C++类;

U:继承自UObject但不继承自Actor;

A:继承自Actor;

S:Slate控件相关类;

H:HitResult相关类;

实例化对象

纯C++类(F开头),使用new产生对象;

继承自UObject但不继承自Actor,使用NewObject函数产生对象:NewObject<T>();返回对象的指针;

继承自Actor使用SpawnActor函数产生对象:GetWorld()->SpwanActor<CusActorClass>();

获取场景中某个Actor的所有实例:使用迭代器:

for(TActorIterator<AActorClass> Iterator(GetWorld());Iterator;++Iterator)

{

//codes for something

*Iterator;//对象的指针

Iterator->Function();//调用函数

}

销毁对象

纯C++类

没有使用new:系统自动回收;

使用了new:手动delete或者声明时使用智能指针依靠引用计数销毁:

TSharedPtr<CusClass> CusClassPtr=MakeShareable(new CusClass());//将不同的new转化为智能指针进行管理

UObject类

根据UPROPERTY宏参与垃圾回收,受系统控制;

Actor类

可以调用Destory函数将对象从场景世界销毁,但内存的回收还是受系统控制;

C++到蓝图

UPROPERTY宏:注册变量到蓝图;

UPROPERTY(BlueprintReadWrite,VisiableAnywhere,Category=”Object”)

UFUNCTION宏:注册函数到蓝图;

UFUNCTION(BlueprintCallable,Category=”test”)

猜你喜欢

转载自blog.csdn.net/weixin_44212242/article/details/125722177