UE4学习笔记[1]Programming Quick Start/编程快速入门

英文官方文档
中文官方文档

通过本课程,
1.创建新的C++项目
2.在C++项目里面创建Actor类
3.在你的开发环境中编辑C++类,添加可视化展示和功能
4.编译你的项目
5.在虚幻编辑器中测试你的新Actor

虚幻引擎关于Visual Studio的要求
英文官方文档
中文官方文档

第一步:必要设置
启动 虚幻编辑器( Unreal Editor)。在 项目浏览器(Project Browser)窗口弹出后,点击游戏(Games)分类并选择空白 (Blank )模板。确保已启用了 C++(C++)初学者内容包(Starter Content),选择项目的 保存位置(Save Location)名称,然后点击 创建项目(Create Project)。在本示例中,我们将项目命名为QuickStart

在这里插入图片描述

Tips:任何蓝图项目均可转换为C++项目。如要对蓝图项目添加C++,请按下一节的说明创建新的C++类,编辑器将设置代码环境。 另外请注意,使用C++项目并不会妨碍使用蓝图。C++项目不过是使用C++代替蓝图来设置项目的基本类。
2.第二步 创建新的C++类
1.在 虚幻编辑器(Unreal Editor) 中,点击 文件(File) 下拉菜单,然后选择 新建C++类...(New C++ Class...) 命令

在这里插入图片描述

2.此时将显示 选择父类(Choose Parent Class) 菜单。可以选择要扩展的现有类,将其功能添加到自己的类。选择 Actor,因为其是可在场景中放置的最基本对象类型,然后点击 下一步(Next)

在这里插入图片描述

3.在 为新Actor命名(Name Your New Actor) 菜单中,将Actor命名为 FloatingActor,然后点击 创建类(Create Class)
在内容浏览器中选中新类后,虚幻引擎将会自动编译并重新加载它,编程环境也将随 FloatingActor.cpp 自动打开。

在这里插入图片描述

3.第三步 编辑C++类
3.1在 Visual Studio 中,找到默认情况下显示在窗口左侧的 解决方案浏览器(Solution Explorer),然后用其找到 FloatingActor.h。在项目中,它将位于 Games> QuickStart > Source > QuickStart 下。

在这里插入图片描述

3.2双击 FloatingActor.h 打开它,并在文本编辑器中将它放到前台。[因为最前面的是FloatingActor.cpp]

在这里插入图片描述

至于.h.cpp是什么,这就需要学习C艹的知识。
3.3双击 FloatingActor.h 在 AFloatingActor() 的声明下面添加下列代码:
UPROPERTY(VisibleAnywhere)
UStaticMeshComponent* VisualMesh;
这里声明的是 StaticMeshComponent,它将担当对象的视觉表示。请注意,它使用 UProperty 宏,这使它在虚幻编辑器中可见。 欲了解UProperty及其说明符的更多信息,请参见属性(Properties)页面。

英文官方文档
中文官方文档

3.4现在打开 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));
}
此函数是 构造函数(constructor),它在类首次创建时告诉该类如何初始化自身。我们添加的代码将会在VisualMesh引用中填充新的StaticMeshComponent、 将它附加到Actor,并将它设为 初学者内容包 资源中的立方体模型。欲了解在代码中附加组件的更多信息,请参见创建和附加组件的指南。( Creating and Attaching Components.)

英文官方文档
中文官方文档

3.5在 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(Actor Ticking)

英文官方文档
中文官方文档

4.第四步 编译和测试C++代码
4.1保存(Save)FloatingActor.h 以及 FloatingActor.cpp 中的工作成果。然后在 解决方案浏览器(Solution Explorer) 中右键点击项目,点击快捷菜单中的 编译(Build) 命令,然后等待项目完成编译。
应会在窗口底部的 输出(Output) 日志中看到一条显示"已成功(Succeeded)"的消息。

在这里插入图片描述

或者,可以回到 虚幻编辑器,点击屏幕顶部工具栏中的 编译(Compile) 按钮。

在这里插入图片描述

一定要在尝试编译前保存工作,否则在代码中做的更改将不会生效。[而且要经常保存工作,以免不可抗力发生写了半天的代码丢失]
4.2在 虚幻编辑器(Unreal Editor) 中,转到 内容浏览器(Content Browser),展开 C++类(C++ Classes),然后找到 FloatingActor。它将位于与项目同名的文件夹中,在范例中是QuickStart。

在这里插入图片描述

4.3点击 FloatingActor 并将它拖进 透视视口(Perspective Viewport) 来创建FloatingActor的实例。它将在 世界大纲视图(World Outliner) 中作为"FloatingActor1"处于被选中状态,它的属性将显示在 细节(Details) 面板中。

在这里插入图片描述

欲了解在视口中导航和在世界场景中放置Actor的信息,请参见关卡设计器快速入门( Level Designer Quick Start.)
4.4在 FloatingActor1细节(Details) 面板中,将Actor位置(Location)设置为(-180、0、180)。此操作会将其放置在默认场景中桌子的正上方

在这里插入图片描述

或者也可使用移动小工具(Move gizmo )手动将其移到该处。。

在这里插入图片描述

4.5按屏幕顶部的 在编辑器中运行(Play) 按钮
5.第五步 最终结果
此时应看到立方体在桌子上方轻盈地上下漂浮,同时缓慢旋转。点击透视视口(Viowport)按住F11可以全屏,如果不是完全全屏,可以先按Shift+F11将UE4全屏,再按F11将视口全屏。

祝贺你!你已经完全用C++创建了首个Actor类。虽然它只能表示非常简单的对象,这也只是C++源代码所能实现的最简单功能, 但你目前已经了解了创建、编辑和编译游戏C++代码的所有基础知识。现在可以迎接更复杂的gameplay编程挑战啦,建议你进行以下操作。制作中国的3A游戏。

在这里插入图片描述
在这里插入图片描述

这段代码最后生成了一个可以悬空旋转的正方体,但是带给我们的震撼不止于此,不仅仅是C艹,而且是Unreal 4 引擎,我们不仅要想,这个引擎和这个编程语言是如何实现的,你就可以感叹我们人类的科技进步,虽然这些进步我们中国起步晚了,但是假如屏幕面前的你是一个年轻人,我更觉得,未来你们会更有希望。想想不仅仅是一个悬空旋转的正方形,想想飞机,甚至是雪,飞机导弹,你想象到的三维空间任何事情,你都可以去计算机世界做到,加油,年轻人。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值