UE5 C++基础 01第Actor类的代码规范
FloatingActor.cpp
我们一键生成了FloatingActor.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "FloatingActor.h"
// Sets default values
AFloatingActor::AFloatingActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void AFloatingActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AFloatingActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
AFloatingActor : 基于 继承自 AActor 的类前缀为A。
的命名规范
FloatingActor.h
我们一键生成了FloatingActor.h
此为 标头 文件。可以将它视作C 类的目录之类的东西。 要开始编译任何新功能,必须首先声明在此文件中使用的所有新 变量 或 函数。
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "FloatingActor.generated.h"
UCLASS()
class UE5BUILD_API AFloatingActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AFloatingActor();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
// Called every frame
virtual void Tick(float DeltaTime) override;
};
在 AFloatingActor() 的声明下面添加下列代码:
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* VisualMesh;
这里声明的是 StaticMeshComponent,它将担当对象的视觉表示。请注意,它使用 UProperty 宏,这使它在虚幻编辑器中可见。 欲了解UProperty及其说明符的更多信息,请参见属性页面。
https://docs.unrealengine.com/5.0/zh-CN/unreal-engine-uproperties/
VisibleAnywhere
说明此属性在所有属性窗口中可见,但无法被编辑。此说明符与"Edit"说明符不兼容。
现在打开 FloatingActor.cpp,在 AFloatingActor::AFloatingActor() 中将下列代码添加到右大括号前:
VisualMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("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.0f, 0.0f));
}
此函数是 构造函数,它在类首次创建时告诉该类如何初始化自身。我们添加的代码将会在VisualMesh引用中填充新的StaticMeshComponent、 将它附加到Actor,并将它设为 初学者内容包 资源中的立方体模型。欲了解在代码中附加组件的更多信息,请参见创建和附加组件的指南。
在 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; //Scale our height by a factor of 20
float DeltaRotation = DeltaTime * 20.0f; //Rotate by 20 degrees per second
NewRotation.Yaw = DeltaRotation;
SetActorLocationAndRotation(NewLocation, NewRotation);
我们在 Tick 函数中添加要实时执行的代码。在此例中,它将使立方体在上下浮动的同时旋转。 欲了解对Actor进行Tick的更多信息,请参见对Actor进行Tick。
编译和测试C 代码
保存 在 FloatingActor.h
以及 FloatingActor.cpp
中的工作成果。然后在 解决方案浏览器 中右键点击项目,点击快捷菜单中的 编译(Build) 命令,然后等待项目完成编译。
应会在窗口底部的 输出 日志中看到一条显示"已成功(Succeeded)"的消息。
或者,可以回到 虚幻编辑器,点击屏幕顶部工具栏中的 编译(Compile) 按钮。
在 虚幻编辑器 中,转到 内容浏览器,展开 C 类(C Classes),然后找到 FloatingActor。它将位于与项目同名的文件夹中,在范例中是QuickStart。
点击 FloatingActor 并将它拖进 透视视口 来创建FloatingActor的实例。它将在 世界大纲视图 中作为"FloatingActor1"处于被选中状态,它的属性将显示在 细节(Details) 面板中。
如何删除C 代码
无法通过虚幻编辑器直接删除C 代码构建的类,
要删除,需要先关闭虚幻编辑器,然后去根目录删除Binaries文件夹。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfhfehj
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13