开篇

我是一个2020年毕业软件专业的毕业生,快要毕业了,已经厌倦了用java去创建一个工程,编写一个软件,所以在毕业设计选题时,我没有选择软件开发,因为对软件开发流程太熟悉了,感觉没有挑战,所以我选择了UE4 VR游戏设计,主题是基于Unrea Engine4/Unity 3D的VR数字电路实验室设计。我打算7号开始进行开发,开始开发后的每天我都会在博客中发表一篇文章来记录我的进度和学习到的内容。欢迎大佬的指点丫。

开始开发前的准备

首先我们需要准备以下几个必须要用到的环境需要配置: - Steam VR下载地址​ Steam VR就不过多介绍了,它说白了就是steam玩VR游戏时所使用的一个插件 - Unreal Engine 4下载地址​ (小声bb~~我不太知道怎么去介绍虚幻4引擎,就随便复制了一段百度百科)虚幻引擎总是能赋予开发商更强的能力,所见即所得’的平台。要知道,很多早期的引擎还需要自己编辑文本文件,或者是无法预览效果。2016年晚些时候,当人们欣赏到虚幻引擎4后,会被其深邃的特效所震撼到,”马克·瑞恩说道。正在进行的年度D.I.C.E峰会上,我们也希望了解到更多有关这款新引擎的情报。美国著名媒体《连线》日前有幸见识了Epic的旷世“新作”,虚幻引擎4的演示Demo,在大约2分半的演算动画里,浑身湿透,盛赞这是“异形”之父H.R.Giger和《冰与火之歌》作者“GeorgeR.R.Martin”的“私生子”。 - Unity 3D下载地址 Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器可运行在Windows、Linux(目前仅支持Ubuntu和Centos发行版)、Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览。它的网页播放器也被Mac 所支持。 - Visual Studio 2017 对于一个准程序员,对于VS这个软件再熟悉不过了,因为UE4需要使用C++进行编程,所以使用了VS编译器。

编程基础

UE4是靠C++进行程序编写的,所以需要开发人员有一定的C++程序开发基础,需要学会的知识包括变量、运算符、基本结构(分支、判断、循环)、类、面向对象、指针等等。其中变量、运算符、基本结构、指针和C语言的程序一摸一样,就不详细说明了。在这篇文章里主要说明一下C++的面向对象机制。

C++类

C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法。类中的数据和方法称为类的成员。函数在一个类中被称为类的成员。

C++ 类定义

定义一个类,本质上是定义一个数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作。 类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。如下所示:

class Demo
{
public://公共的
private://私有的
protected://保护的
}

C++类的实例化

C++类的实例化是指将类变成对象的过程。C++类的实例化和Java类的实例化较为相似,在Java中我们经常new一个对象进行类的实例化(哎~~都是面向对象才能编程的人啊)。而在C++中类的实例化如下程序段所示:

#include <iostream>


using namespace std;


class Box
{
public:
double length; // 长度
double breadth; // 宽度
double height; // 高度
};


int main( )
{
Box Box1; // 声明 Box1,类型为 Box(Box1对象)
Box Box2; // 声明 Box2,类型为 Box(Box2对象)
double volume = 0.0; // 用于存储体积


// box 1 详述(Box1对象变量初始化)
Box1.height = 5.0;
Box1.length = 6.0;
Box1.breadth = 7.0;


// box 2 详述(Box2对象变量初始化)
Box2.height = 10.0;
Box2.length = 12.0;
Box2.breadth = 13.0;


// box 1 的体积
volume = Box1.height * Box1.length * Box1.breadth;
cout << "Box1 的体积:" << volume <<endl;


// box 2 的体积
volume = Box2.height * Box2.length * Box2.breadth;
cout << "Box2 的体积:" << volume <<endl;
return 0;

这段代码运行后输出的结果为:

Box1 的体积:210
Box2 的体积:156

可以看出程序中的Box类被实例化为Box1和Box2两个对象。