UNITY与虚幻都在用组件的模式,组件模式有很多优点:
重用:打个比方我们要组装一辆车,每一个组件就好像一个基础零件,类似于汽车中的轮胎,方向盘,记录仪,车身等,这些基础组件可以重用,Actor就可以根据不同的需求组装成不同的样子,比如要越野车就要几个大的轮胎,车身要高一些,要家庭轿车就需要真皮座椅,座椅加热等组件,这样不用做什么工作都要从头写,避免了代码冗余。
易拓展:而且拓展十分简单,比如现在想要水陆两用的汽车,需要在汽车上加一个漂浮的大气垫,原来没有,现在就直接写一个新的组件,专门在入水是起作用,就是让车不沉下去。
灵活:组件模式可以动态的让Actor增加功能。比如突然想让石头也是一个交通工具了(神奇石头),其实直接把石头Actor增加一个Movement组件,就可以让石头动起来,加一个Camera组件,就可以渲染石头的第一或者第三人称角度了。
看代码:
Actor中保存了他拥有的所有组件,也代表了这个Actor目前有什么功能(理论上只要有合适的组件,可以让任何一个Actor拥有任何功能)
很直接的就想到组件的代码也能够获取他的PARENT,以便操作他的