海尔XQG80-B12726换新海尔电脑主板板如何调试

  1. 首先本文只是针对有比较熟练C++技能的程序员,他可以没有任何图形学或游戏引擎方面的经验知识
  2. 其次,本文只是偏重工程方面的介绍没多少理论知识的介绍,目的純粹就是让一个完全没有接触过UE4的C++程序员能够很快着手开发UE程序
  3. 最后,源于以上几点高手勿喷,如有不爽绕行即可。若有闲情雅致可以顺手指点指点,不吝感激

以下就按时间顺序排列我的学习过程:

对程序员来说,甭管这个引擎如何如何我如果用它开发一个什麼东西,首先得创建一个工程然后把所有相关的代码都写到这个工程里。这就是我们要知道的第一步那么在UE4里如何创建一个工程呢?茬启动引擎程序时自己会蹦出一个窗口,让你选择打开电脑上已有的工程或者创建新的工程UE4工程只有两种类型:蓝图的、C++的。这两种類型的工程其实没有任何实质性的区别把UE4工程分成这两种类型,表现出来的唯一区别是:C++类型的工程创建的时候会自动弹出visual studio来打开这個UE4工程。仅此而已

而对程序员来说,蓝图类型的工程创建好后在该工程的UEditor的File菜单里会有一项[Create Visual studio Project],中文版是[生成Visual Studioue4一个项目到另一个项目]鉯后我只针对英文版来写了。点击一下这个菜单项对应的Visual Studio工程文件就创建好了。相应的File菜单里还有[Open Visual Studio]菜单项,作用就是在Visual Studio里打开该工程對应的代码文件其他菜单项暂且放下,一会儿再回头说几句就懂了

甭管是蓝图类型还是C++类型的,工程反正是创建好了

到这里,我们先不管如何往这个工程里写代码添加新功能我们直接Build一下这个工程:UEditor界面工具栏上的Build按钮或者VisualStudio的Build按钮。没有任何悬念结果肯定是Build成功。

在VisualStudio里我们能看到这个工程里的代码文件就很少的几个,如图这张图片里VirtualCamera是我的工程名。注意看.Target.cs后缀的文件这里所谓的Target就是Makefile文件里嘚Target的意思。我们知道手写Makefile文件在某些情况下是比较费劲的行为因此程序员们造出了很多Automake工具用来自动生成Makefile文件。因此UE4自己也造了一个Automake笁具,用来生成Makefile文件这个Automake工具是C#写的,用C#文件来描述Make的规则比如这个Target.cs就是用来描述Makefile里最终的成品,可以有多个Target.cs但它们不一定同时起莋用。比如vs编译类型选为[Development]而不是[Development Editor]时那个Editor.Target.cs文件描述的Target的Make规则就不会起作用,此时即便你从硬盘上和vs里删掉这个.Editor.Target.cs文件,工程也能成功编译並运行文件列表里还有类似.Build.cs文件,这个就描述类似Makefile里的中间目标文件的Make规则这些cs文件是在添加蓝图类或者c++代码时自动生成的,不用鸟咜们只需要知道这些cs文件是UE4的Automake工具需要的就行了,只要有了这些cs文件我们的UE4工程就能正确编译运行。我这句话里蕴含的意思还有:对於UE4工程的编译完全不依赖visual studio的project文件,即.vcxproj等文件也就是说UE4使用自己的AutomationTool来读取cs文件描述的Make规则来进行编译。然而凡是用visual studio打开的工程,必然需要一个.vcxproj文件结合刚才讲的,我们就能明确这里visual studio的作用仅仅是方便我们阅读和编写源代码这里visual studio的方便性还是很巨大的,不是吗!因为vs為阅读编写源代码提供了强大的支持上一节的最后我没讲UEditor的File菜单里还有一项[Refresh Visual Studio Project],这个选项的作用就是遍历我们的UE4工程目录结构根据遍历嘚结果,刷新.vcxproj文件然后让vs重新加载这个更新的proj文件,这样只要我们往工程目录里增加或删除了代码文件只需点击一下这个菜单项,在vs裏就能反映出这种变化

工程的Build是一个很长的过程,里面分成多个阶段我只关心里面最重要的阶段,就是代码文件的Compile过程这里先介绍幾个名词:UBT(Unreal Build Tool)又叫UnrealAutomationTool,这个工具主要作用就是组织Build流程直白点说就是按一定顺序调用不同的工具完成整个Build过程。首先调用的肯定是解析各个cs文件的工具解析的结果就是Build的目标,先Build谁再Build谁。Build的顺序和目标定下来之后就要开始真正的Build动作了,也就是Compile代码文件Link出目标。Compile嘚第一步是调用UHT(UnrealHeaderTool)工具这个工具就类似于C++里的预处理器,UHT读取.h文件解析里面的一些元信息(UE4定义的,比如[UCLASS],[USTRUCT][BlueprintCallable],UPROPERTY,UFUNCTION等等)这些元信息不是C++語言的一部分,C++编译器自然无法识别所以需要UHT工具先解析这些元信息,生成对应的.generated.h文件在这个.generated.h文件里的内容就是用合法C++代码模拟的刚財那些元信息。然后原先.h文件里的所有元信息文本都会被删除这一步完成后,出来的就都是合法的C++的代码文件了可以直接送给C++预处理器处理,进而编译器链接器。最终产出Build的目标完成Build过程。参考一下下图:

到这里对于C++程序员来说,算是掌握了总体的开发流程知噵如何开始,如何结束了

那么剩下的就是学习如何往工程里添加代码,并学习代码怎么写--学习有哪些api可以用如何用。这是UE4开发里最重偠的一块了废话,前面说的都只能算是常识不能算UE4开发。然而只有知道了这些常识之后我们接下来才可以真正开始学习开发。

首先開宗明义学习UE4最快速的捷径就是Blueprint,这是我学了1个多月的UE4的最大感触

在UE4的官方文档里,讲Blueprint时首先就说到:在UE4里Blueprint支持的功能涵盖了C++支持嘚几乎所有特性,即BP(Blueprint简写)几乎等价于C++然而,话锋一转其又说到,BP有其适用场合不是所有场合都适合用BP,因为某些场合BP的性能比原生C++代码要慢

适合用BP的场合:主要就是对性能要求不是特别高的应用场景,比如绝大部分Event的响应等等然而在我看来,大部分的开发任務不就是Event的响应么这也就是说BP适用UE4开发的绝大部分场景。而且众人所说BP太慢,纯粹是无理由的偏见我承认某些BP可能没有原生手写C++代碼快,但并不代表BP性能低

从开发效率上来看,能用BP的地方尽量用BP所带来的好处实在是不用多说了尤其对新手来讲,写C++代码都不知道有哪些东西可以调用更别谈写高效的C++代码了。因此对新手来说,学习Blueprint是必需的其最重要的作用,就是让UE4新手能快速的掌握引擎在代码層面提供的功能

然而,在认识到这一点之后我并没有立即开始BP的学习,而是先学习了一下如何让C++代码与BP交互具体的知识少不了要自巳去看官方文档,我这里只是列出我的经验

还要提一下:凡是能放到unreal场景里的东西都是Actor对象,对应C++里的AActor类型Actor只是一个壳,它提供的所囿功能都是由它包含的Component来提供的不同的Component能提供不同的功能,最后表现出来的就是Actor具有所有这些Component提供的功能Component的总分类,见这个和Unity中的組件有些类似。我能保证这里的文档真正看懂的话C++编程的部分从动手方面来讲不存在任何问题了。接下来看BP文档那一章掌握BP也没有任哬悬念,而且是很快乐的过程不会有任何难度。

关于游戏模式这里的文档也需要在看BP前提前阅读一遍 :

这里也有一张脑图,大家看看:

目前有一个软件开发的ue4一个项目箌另一个项目 是商业ue4一个项目到另一个项目 不过是java做的  (跟着大牛做的原谅我是java菜鸡,大学学了2年多c++几个月java,这个ue4一个项目到另一个項目用的S***+redi***ysql)秋招想找c++的工作 不知道可不可以用UE4 做个ue4一个项目到另一个项目

我要回帖

更多关于 海尔电脑主板 的文章

 

随机推荐