Ue0:从零开始的虚幻生活
Posted 才极
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ue0:从零开始的虚幻生活相关的知识,希望对你有一定的参考价值。
Ue0从零开始的虚幻生活(四):初遇UEC++
参考文献 UE官方文档:编程快速入门
目标: 用C++编译一个在半空中轻盈地漂浮并不断旋转的立方体
第一步:创建C++类
在虚幻编辑器中,点击 文件下拉菜单,然后选择 新建C++类…命令。
此时将显示选择父类菜单。可以选择要扩展的现有类,将其功能添加到自己的类。选择 Actor,因为其是可在场景中放置的最基本对象类型,然后点击 下一步。
在为新Actor命名菜单中,将Actor命名为 FloatingActor,然后点击创建类。
第二步:编辑C++类之编写头文件
只需在 AFloatingActor() 的声明下面添加下列代码:
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* VisualMesh;//声明一个静态网格类型的指针
第三步:编辑C++类之编写构造函数
在 AFloatingActor::AFloatingActor() 添加:
VisualMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("Mesh"));//创造一个名字为“Mesh”的静态网格,并用指针指向它。
VisualMesh->SetupAttachment(RootComponent);//设置附件
static ConstructorHelpers::FObjectFinder<UStaticMesh> CubeVisualAsset=TEXT("/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube");//创建一个立方体
if (CubeVisualAsset.Succeeded())
VisualMesh->SetStaticMesh(CubeVisualAsset.Object);//将立方体添加到静态网格
VisualMesh->SetRelativeLocation(FVector(0.0f));//设置它在静态网格的位置坐标为(0,0,0)
第三步:编写C++类之编写Tick()函数
在 AFloatingActor::Tick(float DeltaTime) 中添加以下代码:
FVector NewLocation = GetActorLocation();
FRotator NewRotation = GetActorRotation();
float RunningTime = GetGameTimeSinceCreation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f;
float DeltaRotation = DeltaTime * 20.0f;
NewRotation.Yaw += DeltaRotation;
SetActorLocationAndRotation(NewLocation, NewRotation);
第四步:保存、编译、查看结果
以上是关于Ue0:从零开始的虚幻生活的主要内容,如果未能解决你的问题,请参考以下文章