虚幻4Component

UNITY与虚幻都在用组件的模式,组件模式有很多优点:

重用:打个比方我们要组装一辆车,每一个组件就好像一个基础零件,类似于汽车中的轮胎,方向盘,记录仪,车身等,这些基础组件可以重用,Actor就可以根据不同的需求组装成不同的样子,比如要越野车就要几个大的轮胎,车身要高一些,要家庭轿车就需要真皮座椅,座椅加热等组件,这样不用做什么工作都要从头写,避免了代码冗余。

易拓展:而且拓展十分简单,比如现在想要水陆两用的汽车,需要在汽车上加一个漂浮的大气垫,原来没有,现在就直接写一个新的组件,专门在入水是起作用,就是让车不沉下去。

灵活:组件模式可以动态的让Actor增加功能。比如突然想让石头也是一个交通工具了(神奇石头),其实直接把石头Actor增加一个Movement组件,就可以让石头动起来,加一个Camera组件,就可以渲染石头的第一或者第三人称角度了。

看代码:

Actor中保存了他拥有的所有组件,也代表了这个Actor目前有什么功能(理论上只要有合适的组件,可以让任何一个Actor拥有任何功能)

虚幻4Component_第1张图片

很直接的就想到组件的代码也能够获取他的PARENT,以便操作他的Parent(类似于Movement的设置旋转或者缩放等)


MovementComponent的更新位置是通过更改OWNER的RootComponent来实现的,而Actor的RootComponent就保存了这个Actor的位置旋转等,看注释:

可以看到第一个变量就是这个:

具体是怎么计算出位置最后完成移动的不是本篇的目的。就不细说了。










你可能感兴趣的:(虚幻4)