一、创建Actor类与学习类的命名规范

右键创建一个actor类,等待ue5把vs唤醒并完成所有的后台进程。

右下角可以在ue5中进行编译:

创建的actor类中已经默认定义了几个函数,他们的作用如下:

 再去cpp文件中看看每个函数默认实现:

如果每帧的函数tick()没有任何作用,可以把构造函数中的true改成false,这样就不用每帧都调用tick()函数了,能显著提升整体的性能。

其他类一个典型的例子是结构体,结构体就是F开头的。 

创建派生自Actor类的蓝图BP_MyActor。

Actor的UCLASS()里面是空的,并没有写Blueprintable,为什么Actor就能直接创建蓝图呢?

直接看父类AActor的定义。

可以看到AActor类中已经定义了 Blueprintable,所以可以直接创建蓝图。

二、在蓝图中创建静态网格组件

默认的actor组件,显示为球。 

添加一个staticmesh, 直接将他拖动到根组件下,就能替换掉根组件。

PS:根组件就是这个actor的根,对于这个actor类的操作都是围绕根组件进行的,比如旋转是围绕根组件旋转,end碰撞也是根组件和别的单位碰撞。

actor蓝图主要的应用场景:

相当于提供一个模板,可以同时创建多个相同模板的单位。

创建了不同颜色的方块。

三、 在c++中创建静态网格组件

在MyActor.h中添加声明

//在任何地方都可见
	UPROPERTY(VisibleAnywhere , Category = "My Actor Components") 
	UStaticMeshComponent* staticMesh;

 在MyActor.cpp中添加定义(定义在构造函数中)

//                                                        标识名,不是变量名
	staticMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("MystaticMesh"));

编译完成后生成对应的蓝图类。

四、导入模型与布置场景

模型的下载地址:

链接:https://pan.baidu.com/s/1e4Tn4Z7zqJ_CCFuMgaHx-A 
提取码:oyhy 

其中IcoSphere.fbx文件是一个标识的小球,XYZAxes.fbx是xyz轴。

在内容文件夹下创建models目录来存放我们的模型。

直接将两个文件拖入到Models文件夹内。

维持默认就可以。

 提示模型没有平滑组信息,不用管,这是模型建构的时候出了点问题,但是不影响使用。 

导入的模型如下图:

 将圈起来的材质球导入到materials中。

更多推荐