本地環(huán)境: macOS High Sierra 版本10.13.1 (17B48)
Xcode版本: Version 9.1 (9B55)
Unreal Engine 4 版本: 4.18.1
官網(wǎng)連接
1.創(chuàng)建新項(xiàng)目
選擇C++ - 基礎(chǔ)代碼 - 沒(méi)有初學(xué)者內(nèi)容 - 項(xiàng)目名稱(chēng) QuickStart - 創(chuàng)建項(xiàng)目

2.創(chuàng)建C++類(lèi)
在左上角點(diǎn)擊文件 - 新建C++ 類(lèi) - Actor - 類(lèi)名 FloatingActor - 創(chuàng)建類(lèi)

3.寫(xiě)入并編譯C++ 代碼
在Xcode中會(huì)自動(dòng)生成FloatingActor.h和FloatingActor.cpp這兩個(gè)文件
FloatingActor.h頁(yè)面中使用的代碼如下
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "FloatingActor.generated.h"
UCLASS()
class QUICKSTART_API AFloatingActor : public AActor
{
GENERATED_BODY()
public:
// 設(shè)置此actor屬性的默認(rèn)值
AFloatingActor();
protected:
// 當(dāng)游戲開(kāi)始或生成時(shí)調(diào)用
virtual void BeginPlay() override;
public:
// 在每一幀調(diào)用
virtual void Tick(float DeltaTime) override;
float RunningTime;
};
FloatingActor.cpp頁(yè)面中使用的代碼如下
#include "FloatingActor.h"
// 設(shè)置默認(rèn)值
AFloatingActor::AFloatingActor()
{
// 將此actor設(shè)置為在每一幀都調(diào)用Tick()。 如果您不需要這項(xiàng)功能,您可以關(guān)閉它以改善性能。
PrimaryActorTick.bCanEverTick = true;
}
// 當(dāng)游戲開(kāi)始或生成時(shí)調(diào)用
void AFloatingActor::BeginPlay()
{
Super::BeginPlay();
}
// 在每一幀調(diào)用
void AFloatingActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
FVector NewLocation = GetActorLocation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f; //把高度以20的系數(shù)進(jìn)行縮放
RunningTime += DeltaTime;
SetActorLocation(NewLocation);
}
編寫(xiě)好后在虛幻編輯器中點(diǎn)擊編譯按鈕

4.測(cè)試代碼
在虛幻編輯器中的底部找到內(nèi)容瀏覽器,找到之前創(chuàng)建的FloatingActor這個(gè)對(duì)象,將對(duì)象拖拽到中心的關(guān)卡編輯器中,在右側(cè)標(biāo)簽中找到命名為FloatingActor-XXX的對(duì)象,選中后在右下方細(xì)節(jié)面板中點(diǎn)擊添加組件,在下拉列表中找到基本形狀,選中自己喜歡的形狀.

選中FloatingActor對(duì)象,自己拖拽位置

最后在虛幻編輯器頂部點(diǎn)擊播放按鈕,開(kāi)始預(yù)覽