<转载> UE4的Actor类C++简单尝试
一开始我用了一段时间UE4,发现如果用蓝图系统真的不太适合我的风格。因为之前一直都是用Unity3D做程序开发的。但是后来接触了UE4的C++之后感觉还是挺良好的。貌似国内没有相关的书籍和教材,那就只能去看官网的参考文档了
https://docs.unrealengine.com/latest/INT/Programming/index.html
UE4和Unity3D给我的总体感觉:
1.UE4消耗性能比Unity大N多,基本上开了UE4游戏都开不了
2.UE的蓝图适合给美工看,程序员还是老老实实用C++吧
3.Unity每次写完C#代码保存就能运行,而UE4只能每次写完代码手动再编译和重启一次才能使用,这个很依赖性能特别强的电脑,尤其是CPU、固态、固态
4.Unity基于组件编程,每个在视图窗口里面的Gameobject继承自MomoBehavior都有OnGUI、Update、Start之类的
系统回调给你使用。而UE4只能自己手动继承虚函数Tick和BeginPlak,对它进行复写。给我感觉就是2部好车,一部是自动挡、一部是手动挡。
新建一个虚幻4的C++基础项目

新建完成后

新建一个Actor类

为其添加上代码
#pragma once
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"
UCLASS()
class EMPTY_API AMyActor : public AActor
{
GENERATED_BODY() public:
//运行时间
float RunningTime;
//构造器
AMyActor();
//开始时执行的回调 相当于Unity里面的 void Start()
virtual void BeginPlay() override; //每一帧执行的回调 相当于Unity里面的 void Update()
virtual void Tick( float DeltaSeconds ) override;
};
#include "empty.h"
#include "MyActor.h"
#include "iostream"
//构造器
AMyActor::AMyActor()
{
//设置每一帧执行一次Tick() ,如果不需要就设为false
PrimaryActorTick.bCanEverTick = true;
}
//开始时执行的回调
void AMyActor::BeginPlay()
{
Super::BeginPlay(); std::cout << "开始执行";
}
//每一帧执行的回调
void AMyActor::Tick( float DeltaTime )
{
std::cout << "每一帧执行";
Super::Tick( DeltaTime );
//获取Actor的位置 保存到NewLocation变量
FVector NewLocation = GetActorLocation();
//获取时间差值
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
//改变的高度,每次递增20.0f
NewLocation.Z += DeltaHeight * 20.0f;
//改变运行时间的值
RunningTime += DeltaTime;
//设置当前Actor的位置
SetActorLocation(NewLocation);
}
最后把代码MyActor添加到一个圆锥体上,按Ctrl+F5 编译一下 就能看到它在上下的晃动

<转载> UE4的Actor类C++简单尝试的更多相关文章
- 【转载】 [unreal4入门系列之七] UE4中的Actor类和Pawn类
原文地址: http://www.52vr.com/article-558-1.html 现在我们开始进入UE4的代码开发工作.首先,UE4的类框架是非常庞大的,看起来有点让人措手不及.不过正因为UE ...
- 探究UE4网络系列(二)、UE4网络核心类分析
转载请标明出处:http://www.cnblogs.com/zblade/ 一.概要 前面分析了网络核心的基础类Socket/BSDSocket/SocketSubsystem/SocketSubs ...
- 简单尝试Spring Cloud Gateway
简单尝试Spring Cloud Gateway 简介 Spring Cloud Gateway是一个API网关,它是用于代替Zuul而出现的.Spring Cloud Gateway构建于Sprin ...
- 经测试稳定可用的蓝牙链接通信Demo,记录过程中遇到的问题的思考和解决办法,并整理后给出一个Utils类可以简单调用来实现蓝牙功能
说明:这是本人在蓝牙开发过程中遇到过的问题记录和分析,以及解决办法. 在研究过程中,许多的前人给出的解决方案和思路指导对我相当有帮助,但并非都是可采取的解决方法, 经过本人对这些方法的测试和使用过后, ...
- python 元类的简单解释
本文转自博客:http://www.cnblogs.com/piperck/p/5840443.html 作者:piperck python 类和元类(metaclass)的理解和简单运用 (一) p ...
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
c#中@标志的作用 参考微软官方文档-特殊字符@,地址 https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/toke ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- java中Color类的简单总结
java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...
- 【JAVA零基础入门系列】Day12 Java类的简单应用
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...
随机推荐
- Android系统应用Mms之Sms短信发送流程(Mms应用部分)二
1. 新建一条短信, 在发送短信之前, 首先创建的是一个会话Conversation, 以后所有与该接收人(一个或多个接收人)的消息交互, 都在该会话Conversation中. ComposeMes ...
- Flutter去除右上角Debug标签
void main(){ runApp(new MyApp()); } class MyApp extends StatefulWidget { @override _MyAppState creat ...
- Page.Cache
https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.cache?view=netframework-4.8 Gets the ...
- MyBatis-plus使用
https://blog.csdn.net/qq_32867467/article/details/82944674 官网: https://mp.baomidou.com/guide/optimis ...
- async/await 的使用
async : 使用 async 修饰符可将方法.lambda 表达式或匿名方法指定为异步. 如果对方法或表达式使用此修饰符,则其称为异步方法 await: await 运算符应用于异步方法中的任务, ...
- 8_管理及IO重定向
五大类:运算器.控制器:CPU存储器:RAM输入设备/输出设备 程序:是由指令和数据组成的 控制器:读取指令运算器:存储器: 地址总线:内存寻址数据总线:传输数据控制总线:控制指令 寄存器:CPU暂时 ...
- vue入门练习(一)
1.安装node,webpack node -v //查看已安装版本 npm install -g webpack //安装webpack npm install -g webpack-dev-se ...
- git删除远程分支,删除本地分支
远程 # git push origin --delete duck - [deleted] duck 本地 # git branch -d duck 已删除分支 duck(曾为 dda11b8). ...
- 融云(API)
先记录下融云API地址:真是难找 IMKit: https://www.rongcloud.cn/docs/api/android/imkit/index.html IMLib: https://ww ...
- (2)OSi模型
osi七层模型 #(应用层,表示层,会话层) => 应用层 => 表达一个数据信息 # 传输层 port(端口) tcp/udp协议 硬件设备:四层交换机 四层路由器 # 网络层 ip协议 ...