学习UE4开发,为什么要学习C+?

小白做了一个不完全的数据统计,几乎每一个过来学院这边试听的学生,都会问一个永恒的问题:(1)老师,我是过来学习UE4开发的,为什么需要学习C++?(2)C++难吗?我之前没有任何编程基础可以学会吗?(3)听说UE4蓝图开发不需要有任何编程基础都可以上手哇,那么老师我还有必要学习C++吗?

所以本次我特意就这个话题写一篇微信公号文章,下次再有学生困惑的时候,直接推荐他来看这篇文章!

首先想过来学习UE4开发的同学,想必已经对UE4有了一定的了解。UE4作为一款经典的游戏开发引擎,本身就是基于C++作为其底层开发语言,对C++代码一定是非常友好的。但是对于毫无编程经验的学生,学习C/C++则是一件不太友好的事情了。我们开设课程的顺序是先学习大约2个月的C++基础,再去学习UE4。为什么要这样去设置呢?必然有它的合理性。先假设,如果直接去学习UE4,即使是单纯地学习蓝图开发(下面我去打开一个UE4项目,打开关卡蓝图,如下图)

什么都没做之前,就需要先纠结什么是变量?什么是函数?什么是宏?又分别怎么去使用他们?变量中的那些个类型又有什么区别呢?什么时候该用哪个?在学习到类蓝图的时候,什么是类?为什么要用类?继承又是什么鬼!?这些都是你在学习UE4之前需要了解的概念和基本知识(即使你只是想用蓝图进行开发也避免不了),教授UE4的老师可能会捎带提一句,一般不会深入去讲解这些概念。因此在学习UE4之前先要学习C++,即便你觉得自己并不擅长开发,数学不好,逻辑思维不强等等(以往学生给过的理由)。而我要说的是只要态度端正,上课认真听讲,课后能及时完成老师布置的作业,就已经够了,能够了解面向对象的编程思维最重要。

另外有对UE4中C++编程开发特别感兴趣的学生,自然更有必要学习了,当然也远远还不够,还需要进行进一步的学习。

那现在小白就给大家伙展示一下,C++如何在UE4中起作用的。

Step1:新建项目:

安装好之后,启动UnrealEngine,选择 新建项目-> c++ -> 基础代码。

Step2:等加载完之后,选择文件->新建c++类,然后在如下界面选择继承actor。

Step3:进入到C++编辑界面,我们这次利用C++完成实现椅子在场景中旋转的功能,并且在该myactor类中添加几个公有变量并进行初始化,编译一下,可以看见在UE4编辑器中将该myactor拖入场景选中在细节中,就可以看到新添加的变量已经显示出来了。

在这里大家就可以很明显地看到C++是何如在UE4中起作用的了。

其实有很多的项目是完全可以用纯蓝图开发的 - 如果你对性能要求没那么高的话,蓝图也能制作出足够惊艳的画面效果了。听起来好像和C++完全没关系了对吧!那么蓝图的正确用法是什么呢?就像刚才讲到的,程序员都很懒,所以实际上蓝图是为设计师提供的,只有蓝图和C++配合使用才能最大化开发效率。有些逻辑用代码写很快,用蓝图连线很麻烦,有些东西用蓝图调很方便,用代码调会要命,同时虚幻引擎为代码和蓝图的通讯提供了非常好的支持,这两样东西是可以无缝结合在一起的。

所以为什么说蓝图能让程序员少写点代码这句话现在就可以理解了,我把核心用代码封装好,暴露给蓝图一个接口,设计师负责在合适的时候调用这个接口,代码负责执行并且返回结果就行了。更形象一点,代码更像是乐高中的各种积木,方的,圆的,长的,短的,蓝图更像是把这些积木组合成一辆车或一艘船。

你可以在学习初期,从蓝图开始上手比较容易一些。但非常不幸,你最终还是逃不过C++的魔爪。蓝图再厉害,它也是脚本生成的,最终还是要回归到本质,那就是代码。蓝图有的东西,代码里都有,反过来可就不一定了。而且,想要深入的了解引擎的世界观和工作原理,蓝图可是无法告诉你这些东西的。所以,少年,和我一起努力吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180727G1CMN100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券