查看: 458|回复: 7

[编程指南] 【3. 写入并编译C++代码 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 00:47:57 | 显示全部楼层 |阅读模式



上一步
下一步



   
快速启动主页


在 Visual Studio 中,我们会使用 Solution Explorer(解决方案浏览器) 面板来搜寻新建的C++文件。 在我们的示例中,它们被命名为FloatingActor.cpp和FloatingActor.h,并且将被放置于"QuickStart"项目中。

【虚幻4翻译文档-3. 写入并编译C++代码 | Unreal Engine】[虚幻4中文文档]

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(编译) 按钮来进行编译。 编译成功后, 虚幻引擎 会自动载入我们的变更内容。

【虚幻4翻译文档-3. 写入并编译C++代码 | Unreal Engine】[虚幻4中文文档]

【虚幻4翻译文档-3. 写入并编译C++代码 | Unreal Engine】[虚幻4中文文档]


(在 Visual Studio 中)

【虚幻4翻译文档-3. 写入并编译C++代码 | Unreal Engine】[虚幻4中文文档]

【虚幻4翻译文档-3. 写入并编译C++代码 | Unreal Engine】[虚幻4中文文档]


(在 虚幻编辑器 中)


我们现在可以基于代码来在 虚幻引擎 中创建物体了! 所有本页面中使用的代码都在下方,以供您参考。


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);}


   
上一步
下一步



   
快速启动主页
回复

使用道具 举报

0

主题

845

帖子

2792

积分

vip会员

Rank: 1

积分
2792
发表于 2016-7-2 19:29:39 来自手机 | 显示全部楼层
好棒好棒好棒,谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

901

帖子

2954

积分

vip会员

Rank: 1

积分
2954
发表于 2016-7-3 17:30:16 | 显示全部楼层
好东西,所噶
回复 支持 反对

使用道具 举报

0

主题

923

帖子

3034

积分

vip会员

Rank: 1

积分
3034
发表于 2016-7-4 09:59:15 来自手机 | 显示全部楼层
快没金币了,看看需要多少?
回复 支持 反对

使用道具 举报

0

主题

862

帖子

2834

积分

vip会员

Rank: 1

积分
2834
发表于 2016-7-9 16:23:40 | 显示全部楼层
挺不错的!就是不知道价格
回复 支持 反对

使用道具 举报

0

主题

892

帖子

2909

积分

vip会员

Rank: 1

积分
2909
发表于 2016-7-10 12:07:46 来自手机 | 显示全部楼层
好久没给力点的了。谢谢
回复 支持 反对

使用道具 举报

0

主题

887

帖子

2898

积分

vip会员

Rank: 1

积分
2898
发表于 2016-7-18 10:30:30 来自手机 | 显示全部楼层
这就是为什么春哥在天朝这么火的原因啊!
回复 支持 反对

使用道具 举报

0

主题

828

帖子

2688

积分

vip会员

Rank: 1

积分
2688
发表于 2016-7-23 03:46:57 | 显示全部楼层
这个必须顶,撸主好人
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部