(0)不会敲代码能学UE4吗?
1.先学C++,再学U E4:
我在学习UE4期间认识了许多毫⽆编程经验的同学,或者⼀些只有⼀丝丝其他编程语⾔经验的同学。对于他们来说学习C/C++是⼀件⾮常不友好的事情,C/C++的变态程度在众多编程语⾔当中不说数⼀数⼆也算鹤⽴鸡。那么这样导致⼀个什么结果呢?学起来很难,甚⾄⾯向对象这四个字理解起来就已经要绞尽脑汁了,更不要说⾦字塔顶端的指针和引⽤了!然⽽过段时间当他们吭哧吭哧的学完C/C++的基础知识,学会了使⽤语法、类、对象、基本数据结构、逻辑控制、⼤概明⽩了指针和引⽤,满⼼欢喜的打开UE4模板⼯程的C++代码后,竟然发现:
“这是我学过的C/C++吗?为什么长得完全不⼀样!”
为什么长得完全不⼀样?当他们学习C/C++的时候,实际上每次都是从⼀张⽩纸开始写,⾃⼰定义头⽂件、⾃⼰写.cpp、变量、函数什么都是⾃⼰来。相信所有所有编程初学者第⼀次⽤代码在控制台打出“Hello World”的时候都是贼兴奋的,原来编程这么神奇,可以让我控制电脑!他们也⼀样,好不容易通过学习C/C++对编程有了⼀点兴趣,但在通过UE4创建⼀个C++类的时候这些兴趣就灰飞烟灭了。归根结底是⼀个问题:
“虚幻是个⽤C/C++写出来的游戏引擎”
什么是游戏引擎?⽼听说这那游戏是由虚幻4引擎打造,效果⽆敌,画⾯⽜逼。引擎俩字听着挺⾼⼤上啊,但翻译成不太准确⼤⽩话就是:“虚幻引擎是⼀⼤堆代码,⾥⾯有⼀⼤⼤⼤堆的函数,有绘制图案的,有控制逻辑的,还有别的乱七⼋糟的。反正各种有的没的虚幻引擎都给你写好了,你按照⾃⼰的意思随便⽤⼀⽤就能做出个游戏了。”话⾥话外什么意思呢?虚幻引擎就是⼀个框架,框架的好处是⽤着⽅便,坏处也显⽽易见,你必须要守规矩。说回到刚才的话题,为什么长得完全不⼀样?因为虚幻引擎的代码有他⾃⼰的规矩!这就是为什么⼤家都⽤笔写字,但是王羲之只有⼀个。
所以最痛苦的阶段竟然不是从零开始学习C/C++,⽽是C/C++学的⼀知半解后再转学虚幻C/C++。为了不同平台的兼容性,虚幻引擎已经把
C/C++完全魔改了。⽐如把C/C++⾥没有的“对象”这个东西整出来了,叫UObject。⽐如数据结构也不⽤你纠结⽤vector还是list了,现在叫TArray。总⽽⾔之你是在别⼈搭好的地基上盖楼,⽤的还都是别⼈提供好的材料。实际上学习的过程就是理解把这个引擎写出来的那些⼈的脑⼦⾥到底在想什么的过程,这个当然不简单了!
结论:
如果有⽐较好的⾯向对象编程基础,⽐如Java,⽐如C#,甚⾄有其他游戏引擎的经验,那我觉得可以先学C++再学UE4,最起码你可以很快的跳过Hello World这个阶段,并且在第⼀次看到UE4源码的时
候有较⼤的⽣存⼏率。
2. 先学蓝图,学不学C++看⼼情
程序员肯定是推动科技进步的先锋,其中懒这个特质更是先锋中的先锋。蓝图是什么?要我说就是为了让程序员少写点代码存在的。以前没有可视化编辑器的时候游戏是怎么开发的呢?想象⼀下我想调整⼀个物体的位置或朝向我要⼀遍⼀遍的去代码⾥改,害不害怕?现在多脑残啊,编辑器⾥看⼀看,⿏标拖⼀拖,搞定!
实际上蓝图的功能已经⾜够强⼤了,如果你有时间去看⼀看虚幻官⽅的“内容⽰例”项⽬就会和我发出⼀样的感慨。并且使⽤蓝图有他的先天优势:⾮常友好的编辑器界⾯和五颜六⾊的节点,⾄少让你在连来连去的时候不那么枯燥,更重要的是能直观的看到预览效果。甚⾄有些部分例如材质系统,动画系统⽤蓝图调试是⾮常⽅便的。
零基础学java编程当然,使⽤蓝图也有难以解决的问题,⽆论是虚幻编辑器本⾝存在的各式各样的⼩BUG,还是⼀些⽆法⽤蓝图访问的属性和函数,都是蓝图开发者和程序开发者之间的鸿沟。这个沟并不宽,但是很深,掉下去再爬上来还是挺费劲的。
其实有很多的项⽬是完全可以⽤纯蓝图开发的 - 如果你对性能要求没那么⾼的话,蓝图也能制作出⾜
够惊艳的画⾯效果了。听起来好像和C++完全没关系了对吧!那么蓝图的正确⽤法是什么呢?就像刚才讲到的,程序员都很懒,所以实际上蓝图是为设计师提供的,只有蓝图和C++配合使⽤才能最⼤化开发效率。有些逻辑⽤代码写很快,⽤蓝图连线很⿇烦,有些东西⽤蓝图调很⽅便,⽤代码调会要命,同时虚幻引擎为代码和蓝图的通讯提供了⾮常好的⽀持,这两样东西是可以⽆缝结合在⼀起的。
所以为什么说蓝图能让程序员少写点代码这句话现在就可以理解了,我把核⼼⽤代码封装好,暴露给蓝图⼀个接⼝,设计师负责在合适的时候调⽤
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论