|
上一步
下一步
快速启动主页
在 Visual Studio 中,我们会使用 Solution Explorer(解决方案浏览器) 面板来搜寻新建的C++文件。 在我们的示例中,它们被命名为FloatingActor.cpp和FloatingActor.h,并且将被放置于"QuickStart"项目中。
FloatingActor.h中,我们会在文件末尾处的终止大括号和分号之前添加以下代码:
float RunningTime;
切换到FloatingActor.cpp,我们会在 AFloatingActor::Tick 底部的终止大括号前添加以下代码:
FVector NewLocation = GetActorLocation();float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));NewLocation.Z += DeltaHeight * 20.0f; //把高度以20的系数进行缩放RunningTime += DeltaTime;SetActorLocation(NewLocation);
我们刚写的代码会导致 FloatingActors 平滑地上下跳动,使用我们创建的 RunningTime 变量来随时间追溯移动的轨迹。
现在编码完成了,我们可以通过在 Solution Browser(解决方案浏览器) 中右键点击项目并选择 Build(编译) 命令,或通过点击 Unreal Editor(虚幻编辑器) 的 Compile(编译) 按钮来进行编译。 编译成功后, 虚幻引擎 会自动载入我们的变更内容。
(在 Visual Studio 中)
(在 虚幻编辑器 中)
我们现在可以基于代码来在 虚幻引擎 中创建物体了! 所有本页面中使用的代码都在下方,以供您参考。
Finished Code
FloatingActor.h
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.#pragma once#include "GameFramework/Actor.h"#include "FloatingActor.generated.h"UCLASS()class QUICKSTART_API AFloatingActor : public AActor{ GENERATED_BODY()public: // 设置此actor属性的默认值 AFloatingActor(); // 当游戏开始或生成时调用 virtual void BeginPlay() override; // 在每一帧调用 virtual void Tick( float DeltaSeconds ) override; float RunningTime;};
FloatingActor.cpp
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.#include "QuickStart.h"#include "FloatingActor.h"// 设置默认值AFloatingActor::AFloatingActor(){ // 将此actor设置为在每一帧都调用Tick()。 如果您不需要这项功能,您可以关闭它以改善性能。 PrimaryActorTick.bCanEverTick = true;}// 当游戏开始或生成时调用void AFloatingActor::BeginPlay(){ Super::BeginPlay();}// 在每一帧调用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的系数进行缩放 RunningTime += DeltaTime; SetActorLocation(NewLocation);}
上一步
下一步
快速启动主页
|
|