再次感叹UE4是一个非常复杂的技术,非常怀念那时候学c语言的时候,那时候更倾向于语言的语法和一些思想,语言本身的简洁性导致能够更多的发挥自身的想法,同样里面的工具也非常少。
UE4是一个工具,而不是一门语言,更多的偏向于解决实际问题,所以该有的概念已经基本都有了。学c语言的时候,有一个重要的开始就main函数。而在UE4里还是找不到这个函数,由于是整体的框架,更偏向于mfc的设计,和以后现代语言桌面语言的设计,是基于事件驱动。
事件驱动,其实说到底是main函数已经交给系统。留给程序和设计人员的是一个事件的设计,其实一个事件也可以相当于一个main函数。我们在学事件驱动的语言框架了,它里面的角色控制只有唯一一个。比如开始,过程中,结束等事件。而这些是一个事件,做什么事情的维度,而在UE4中不仅要考虑这些,还要考虑谁来做。我们简而言之,以下总结以上所述。
1.事件:什么时候做?做什么事儿?
2.角色:是由谁来做?
多了角色这个概念以来,就把系统引向了一个更为复杂的维度。也就是说类似是一个多人参与的系统,而不是一个人,可以简单的这么理解。
我们的这个角色控制在软件框架中的具体体现到底是什么呢?
既然已经有了角色这个概念,那么角色在软件框架中具体体现是什么呢?这就不得不由UE4中的基本概念说起。
我们看一下ue4创建的对象,这里边的pawn和character,这两个对象实际上是对一个人的抽象,而权限也就是在这个两个对象上进行分配的。我们创建一个这个对象,在有UE4场景中,就会发现在它的设置里面有下边属性。
这两种类型的对象都会有pawn这个属性栏,在auto possess plawer,这个属性其实就是设置控制权限的属性。这里边有player 0~7,表示8个玩家,而我们启动第1个窗口呢,一般情况下就表示player0。我们在开发多人游戏的时候启动很多窗口,基本上一个窗口就表示一个玩家的控制。所以常规意义呢,我们将一个这个类型的对象设置为player0的时候,表示游戏一开始玩家从控制这个角色开始。这样讲可能还是非常的抽象。
右下角这个小窗口呢,就是对应的角色所看到的视图,如果我们将第1个胖设置为player0的话,那么游戏启动,显示的就是第1个小的窗口。如果是第2个则同理。
UE4是一个比较复杂的游戏引擎,我们在研究一个具体问题的时候,还是单独拿出来独自研究,这样会比较简单易懂,今天就说到说到吧。