UE4编程快速入门
2015-08-05 21:21
525 查看
在本教程的过程中,我们会创建新的 虚幻引擎 项目,向其添加新的C++类,然后编译项目并添加新类的实例到关卡中。 在完成后,我们会看到以C++来编程的 Actor 在屏幕上的移动。
![](https://docs.unrealengine.com/latest/images/start_icon.png)
步骤
1.
必备的项目设置
2.
创建C++类
3.
写入并编译C++代码
4.
测试您的代码
5. 发挥想象!
编程快速入门
Previous Step
下一步
快速启动主页
从启动程序中打开 虚幻引擎 。 项目浏览器将会出现。
点击 New Project(新建项目) 选项卡,然后选择 C++ 选项卡。 在该处选择 Basic Code(基础代码) ,这样我们可以获得全新的起始点,确认设置了 "With Starter Content(和入门内容共同启动)"。 我们需要输入项目名称,就使用"QuickStart"吧。 现在可以点击Create Project(创建项目) 并开始了。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/1/CreateProject.jpg)
Unreal Editor(虚幻编辑器) 现在将会打开新项目。 Visual Studio 也会打开,并载入项目刚创建的解决方案文件。
编程快速入门
Unreal
Engine 4.7
上一步
下一步
快速启动主页
在 Unreal Editor(虚幻编辑器) 中,我们可以使用 Add Code to Project(添加代码到项目) 命令来创建新的C++类,它位于File(文件) 下拉菜单中。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/AddCPPCode.jpg)
此时将会打开 Choose Parent Class(选择父类) 菜单。 由于 Actor 是能够存在于 Unreal Engine(虚幻引擎) 层面的最为基础的类,我们将会把 Actor 类作为基类。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/ChooseParentClass.jpg)
此时将会打开 Name Your New Actor(命名您的新Actor) 菜单。 对这个示例来说,让我们输入名称"FloatingActor",然后点击Create Class(创建类) 。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/NameActorClass.jpg)
现在我们已经创建了一个C++类,我们可以切换到 Visual Studio 来对它编程。
编程快速入门
上一步
下一步
快速启动主页
在 Visual Studio 中,我们会使用 Solution Explorer(解决方案浏览器) 面板来搜寻新建的C++文件。 在我们的示例中,它们被命名为
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/SolutionExplorer_Files.jpg)
我们要开始写代码了。 本教程中所有的代码可用于完成本页面的所有指示,您可以在页面的底部位置找到它们。
在
切换到
我们刚写的代码会导致 FloatingActors 平滑地上下跳动,使用我们创建的 RunningTime 变量来随时间追溯移动的轨迹。
现在编码完成了,我们可以通过在 Solution Browser(解决方案浏览器) 中右键点击项目并选择 Build(编译) 命令,或通过点击Unreal Editor(虚幻编辑器) 的 Compile(编译) 按钮来进行编译。 编译成功后, 虚幻引擎 会自动载入我们的变更内容。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/CompileFromVS.jpg)
(在 Visual Studio 中)
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/CompileFromEditor.jpg)
(在 虚幻编辑器 中)
我们现在可以基于代码来在 虚幻引擎 中创建物体了! 所有本页面中使用的代码都在下方,以供您参考。
Finished Code
FloatingActor.h
FloatingActor.cpp
编程快速入门
上一步
下一步
编程主页
在 虚幻编辑器 中,找到 Content Browser(内容浏览器) ,并展开名称为"C++类"的文件夹、 在该文件夹中,有一个包含了 Actor类的 FloatingActor 的"QuickStart"文件夹。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/ClassInContentBrowser.jpg)
我们可以直接把 FloatingActor 类拖曳到 Level Editor(关卡编辑器) 窗口来创建世界中 FloatingActor 的实例。 我们会在 Level Editor(关卡编辑器) 和 World Outliner(世界大纲视图) 中选择它,它在其中的名称为 "FloatingActor1"。 它的 Components(组件) 和其它属性可以在 Details(详细信息) 面板中看到。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/WorldOutliner.jpg)
FloatingActor 应该在游戏中可见。 在选择了它后,我们可以在 Details Panel(详细信息面板) 中点击 Add Component(添加组件) ,然后选择 Cone(椎体) 从而赋予它简单的可视化表现。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/AddStaticMesh.jpg)
现在自定义的 Actor 已经完成了,让我们把它移动到明显的位置。 我们可以用鼠标左键在世界中选择并拖曳内容,或者我们也可以手动来移动它。 如需手动移动,我们可以在 Level Editor(关卡编辑器) 或 World Outliner(世界大纲视图) 中选择它,然后使用Details Panel(详细信息面板) 来选择"FloatingActor1 (实例)"。 我们现在可以直接编辑FloatingActor1的 Transform(变换) 的Location(位置) 域了。
让我们把X设置为-200,把Z设置为200。这样我们就可以在场景中的桌子上放置"FloatingActor1"了。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/SetActorLocation.jpg)
按下 Play(播放) 按钮,然后观看椎体的上下浮动!
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/MovingCone.jpg)
Finished Code
FloatingActor.h
FloatingActor.cpp
编程快速入门
上一步
Next Step
快速启动主页
通过使用您已经掌握的内容,您可以进行如下操作:
添加粒子系统组件 到您的 FloatingActor 中。 您的项目中已经包括了预编译的 粒子系统 。
您可以使用 虚幻引擎的 UProperty宏来显示一个变量,以用于您的 FloatingActor的 移动力的大小,而不是使用硬编码值。
您可以查看Variables, Timers, and Events教程来获得关于此主题的帮助信息。
添加X和/或Y轴的周期性运动,并将 DeltaTime 值乘以0.6和1.4之间的值,这样您的 FloatingActor 看起来是自由悬浮的。 对于能力加成道具来说,这个看起来很棒!
对于本教程中提到的详细内容,请参考以下文件:
如需了解更多关于 Actors 的信息,请参阅Actor手册页面。
如需阅读更多教程,请参阅C++ Programming Tutorials页面。
![](https://docs.unrealengine.com/latest/images/start_icon.png)
步骤
1.
必备的项目设置
2.
创建C++类
3.
写入并编译C++代码
4.
测试您的代码
5. 发挥想象!
编程快速入门
Previous Step
下一步
快速启动主页
从启动程序中打开 虚幻引擎 。 项目浏览器将会出现。
点击 New Project(新建项目) 选项卡,然后选择 C++ 选项卡。 在该处选择 Basic Code(基础代码) ,这样我们可以获得全新的起始点,确认设置了 "With Starter Content(和入门内容共同启动)"。 我们需要输入项目名称,就使用"QuickStart"吧。 现在可以点击Create Project(创建项目) 并开始了。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/1/CreateProject.jpg)
Unreal Editor(虚幻编辑器) 现在将会打开新项目。 Visual Studio 也会打开,并载入项目刚创建的解决方案文件。
2. 创建C++类
编程快速入门Unreal
Engine 4.7
上一步
下一步
快速启动主页
在 Unreal Editor(虚幻编辑器) 中,我们可以使用 Add Code to Project(添加代码到项目) 命令来创建新的C++类,它位于File(文件) 下拉菜单中。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/AddCPPCode.jpg)
此时将会打开 Choose Parent Class(选择父类) 菜单。 由于 Actor 是能够存在于 Unreal Engine(虚幻引擎) 层面的最为基础的类,我们将会把 Actor 类作为基类。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/ChooseParentClass.jpg)
此时将会打开 Name Your New Actor(命名您的新Actor) 菜单。 对这个示例来说,让我们输入名称"FloatingActor",然后点击Create Class(创建类) 。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/2/NameActorClass.jpg)
现在我们已经创建了一个C++类,我们可以切换到 Visual Studio 来对它编程。
FloatingActor.cpp将会自动打开, Unreal Engine(虚幻引擎) 会自动编译并使用我们的新类来重新载入代码。
3. 写入并编译C++代码
编程快速入门上一步
下一步
快速启动主页
在 Visual Studio 中,我们会使用 Solution Explorer(解决方案浏览器) 面板来搜寻新建的C++文件。 在我们的示例中,它们被命名为
FloatingActor.cpp和
FloatingActor.h,并且将被放置于"QuickStart"项目中。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/SolutionExplorer_Files.jpg)
我们要开始写代码了。 本教程中所有的代码可用于完成本页面的所有指示,您可以在页面的底部位置找到它们。
在
FloatingActor.h中,我们会在文件末尾处的终止大括号和分号之前添加以下代码:
[code]float RunningTime;
切换到
FloatingActor.cpp,我们会在 AFloatingActor::Tick 底部的终止大括号前添加以下代码:
[code]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(编译) 按钮来进行编译。 编译成功后, 虚幻引擎 会自动载入我们的变更内容。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/CompileFromVS.jpg)
(在 Visual Studio 中)
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/3/CompileFromEditor.jpg)
(在 虚幻编辑器 中)
我们现在可以基于代码来在 虚幻引擎 中创建物体了! 所有本页面中使用的代码都在下方,以供您参考。
Finished Code
FloatingActor.h
[code]// Copyright 1998-2015 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
[code]// Copyright 1998-2015 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); }
编程快速入门
上一步
下一步
编程主页
在 虚幻编辑器 中,找到 Content Browser(内容浏览器) ,并展开名称为"C++类"的文件夹、 在该文件夹中,有一个包含了 Actor类的 FloatingActor 的"QuickStart"文件夹。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/ClassInContentBrowser.jpg)
我们可以直接把 FloatingActor 类拖曳到 Level Editor(关卡编辑器) 窗口来创建世界中 FloatingActor 的实例。 我们会在 Level Editor(关卡编辑器) 和 World Outliner(世界大纲视图) 中选择它,它在其中的名称为 "FloatingActor1"。 它的 Components(组件) 和其它属性可以在 Details(详细信息) 面板中看到。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/WorldOutliner.jpg)
FloatingActor 应该在游戏中可见。 在选择了它后,我们可以在 Details Panel(详细信息面板) 中点击 Add Component(添加组件) ,然后选择 Cone(椎体) 从而赋予它简单的可视化表现。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/AddStaticMesh.jpg)
现在自定义的 Actor 已经完成了,让我们把它移动到明显的位置。 我们可以用鼠标左键在世界中选择并拖曳内容,或者我们也可以手动来移动它。 如需手动移动,我们可以在 Level Editor(关卡编辑器) 或 World Outliner(世界大纲视图) 中选择它,然后使用Details Panel(详细信息面板) 来选择"FloatingActor1 (实例)"。 我们现在可以直接编辑FloatingActor1的 Transform(变换) 的Location(位置) 域了。
让我们把X设置为-200,把Z设置为200。这样我们就可以在场景中的桌子上放置"FloatingActor1"了。
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/SetActorLocation.jpg)
按下 Play(播放) 按钮,然后观看椎体的上下浮动!
![](https://docs.unrealengine.com/latest/images/Programming/QuickStart/4/MovingCone.jpg)
Finished Code
FloatingActor.h
[code]// Copyright 1998-2015 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
[code]// Copyright 1998-2015 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); }
编程快速入门
上一步
Next Step
快速启动主页
通过使用您已经掌握的内容,您可以进行如下操作:
添加粒子系统组件 到您的 FloatingActor 中。 您的项目中已经包括了预编译的 粒子系统 。
您可以使用 虚幻引擎的 UProperty宏来显示一个变量,以用于您的 FloatingActor的 移动力的大小,而不是使用硬编码值。
您可以查看Variables, Timers, and Events教程来获得关于此主题的帮助信息。
添加X和/或Y轴的周期性运动,并将 DeltaTime 值乘以0.6和1.4之间的值,这样您的 FloatingActor 看起来是自由悬浮的。 对于能力加成道具来说,这个看起来很棒!
对于本教程中提到的详细内容,请参考以下文件:
如需了解更多关于 Actors 的信息,请参阅Actor手册页面。
如需阅读更多教程,请参阅C++ Programming Tutorials页面。
相关文章推荐
- iOS开发_UIView
- 用UIPagecontrol和UIScroller制作简易的相册(MRC状态下)
- UE4蓝图术语表
- Quartz2D - 04.利用贝瑟尔路径(UIBezierPath)绘制基本图形
- Windows/MFC_三个退出程序消息:WM_CLOSE、WM_DESTROY、WM_QUIT
- UE4蓝图用户指南
- UE4蓝图简介
- Rescue
- iOS之UIView的层次结构变更
- UIPickerView的简单应用——省份/城市选择的实现
- CSS3 Media Query:移动 Web 的完美开端
- 黑马程序员——break和continue语句+函数+函数重载-第4天
- 黑马程序员—JAVA基础—GUI(图形化界面编程)
- iOS之UIView的圆角
- UIView详解
- iOS之UIView的变更动画
- 28.UIScrollView和UIPageController
- HDU 1242 Rescue
- UIScrollView
- iOS之UIImage的三中读取方法