原教程是基于 UE4.18 , 我是基于 UE 4.25】
英文原地址
接上一节教程 , 创建一个新的 actor , 在这个例子中 , 我们将新建的 Actor 子类称为。
我们不需要在头文件中做任何事情 。以防万一 , 下面是默认创建的头文件 。
.h
#pragma once#include "CoreMinimal.h"#include "GameFramework/Actor.h"#include "ActorLineTrace.generated.h"UCLASS()class UNREALCPP_API AActorLineTrace : public AActor{GENERATED_BODY()public: // Sets default values for this actor's propertiesAActorLineTrace();protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;public: // Called every framevirtual void Tick(float DeltaTime) override;};
为了帮助我们可视化 线轨迹 , 我们将包含 头文件 。这将允许我们绘制一条高亮的线轨迹 。我们还将包含 .h , 以立即向 actor 添加一个网格以实现可视化表示 。通常首选在编辑器中添加一个网格(没有 .h帮助的情况下) , 但我们应该继续在 c++ 中尝试新的东西 。
#include "ActorLineTrace.h"// add these scripts to use their functions#include "ConstructorHelpers.h"#include "DrawDebugHelpers.h"
我们通过创建 的向 actor 添加一个立方体 。然后 , 我们让新的立方体成为 actor 的根组件 。我们通过从调用 , 以编程方式向 actor 添加一个网格 。在中 , 我们提供了到网格的路径 。在此处我们需要检查我们是否成功得到网格 。如果我们成功获得了网格 , 我们就设置 actor 的 ,和 Scale 。
下面是我们放入 actor 的构造函数中的代码 。
AActorLineTrace::AActorLineTrace(){// 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;// add cube to rootUStaticMeshComponent* Cube = CreateDefaultSubobject
接下来 , 在 actor 的 Tick 函数上 , 我们想要绘制线条轨迹 , 看看它是否碰到了什么东西 。
对于本例 , 我们将检查同一 actor 内是否有其他对象 。让我们先分别创建变量 和
void AActorLineTrace::Tick(float DeltaTime){Super::Tick(DeltaTime);FHitResult OutHit;FVector Start = GetActorLocation();}
起始位置是矢量 , 这意味着它有X,Y,Z三个分量 。我想要向上移动线轨迹 , 让其更靠近网格的中心 , 同时又要让它和网格保持一定距离 , 这样它才不会与自己碰撞 。那么上面的代码修改为
void AActorLineTrace::Tick(float DeltaTime){Super::Tick(DeltaTime);FHitResult OutHit;FVector Start = GetActorLocation();Start.Z += 50.f;Start.X += 200.f;}
在那之后 , 让我们通过使用 r() 来获得网格的前向向量 , 以确保线轨迹是从网格的前面移动出来的 。然后我们将创建End 变量来告诉线轨迹到哪里结束 。在这个例子中 , 行跟踪将从 50 个单位以上开始 , 向前 200 个单位 , 并从起点 500 个单位结束 。
- 最适合养花新手养殖的多肉种类推荐
- 份量和分量有什么区别 分量的区别
- 白云山消炎镇痛膏与万通筋骨贴的功效是什么
- 09-06 周二 Python之KNN算法的实现
- 铳皇无尽的法夫纳第二季 铳皇无尽的法夫纳第二季什么时候出
- 法国盛产葡萄的原因?
- float在c语言中的意思 float在c语言中的意思是定义实数
- 基于SSH的企业信息查询系统
- 三亚房子 三亚房子最好的位置是哪里
- 股东透明度:企业股东信息API在投资决策中的应用