<转载> 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类的简单应用
俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重 ...
随机推荐
- \r \n \t \n\t
[root@localhost advanced_shell_script]# cat test15.sh #!/bin/bash #!/bin/bash # echo -e# 默认情况下,echo命 ...
- 解决 Invalid character found in method name. HTTP method names must be tokens 异常信息
一个线上环境出现异常,不是spring boot. 解决方法: server.xml中加上maxHttpHeaderSize="8192" springBoot 1.x则是在app ...
- springMVC注解总结
由于BookController类加了value="/book"的@RequestMapping的注解,所以相关路径都要加上"/book",即请求的url分别为 ...
- 算法(第四版)C# 习题题解——1.5
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 这一节内容可能会用到的库文件有 ...
- Gradle目录结构详解
环境:window 7 64 Gradle 版本: gradle 3.0 创建文件夹,并初始化 mkdir gradle_dir && cd gradle_dir gradle ini ...
- PKUWC 2017 Day 2 简要题解
*注意:题面请移步至loj查看. 从这里开始 Problem A 随机算法 Problem B 猎人杀 Problem C 随机游走 怎么PKU和THU都编了一些假算法,然后求正确率[汗]. 之前听说 ...
- Linux系统 磁盘IO过高排查总结
最近做的一个电商网站因为磁盘 I/O 过高导致访问速度奇慢,问题存在两个月有余未得到解决办法.此次排查原因的经验可以作下次问题的参考. 1.会看懂 top 系统命令出来的各项参数.此次是无意中发现 u ...
- webdriver之富文本,Firefox配置加载
chrome驱动下载:http://chromedriver.storage.googleapis.com/index.html 加载浏览器配置,需要用FirefoxProfile(profile_d ...
- 基于SVD的图像压缩
算法简介 算法实现 我只是简单处理了一下图像的灰度值,如果要处理RGB值的话,就需要分别进行SVD分解,最后再合起来即可. import numpy as np from PIL import Ima ...
- zabbix服务器与客户端(Linux+Windows)的搭建
zabbix监控搭建 一.搭建LNMP环境(MySQL) 创建数据库以及授权zabbix账户 mysql> create database zabbix character set utf8; ...