该怎么样用C++来实现类Unity3d的AddComponent
展开全部
以下是我个人的见解,如果不当希望指正:
每一个Component其实就是一个MonoBehaviour的子类,每一个组件其实就是用类似模板方法模式的做法,重写那些模板方法(事实上看上去更像是覆盖),然后作为一个父类对象被控制单元认知。然后每一个GameObject维护一个组件列表,在特定的时间来调用这些组件的模板方法。那么,组件列表可以考虑使用观察者模式或者订阅模式的方法来更新,也就实现了AddComponent的功能了。
用C++的话可以考虑维护一个这种组件对象的容器或者结构。总之我个人认为的思想就是这样了。
每一个Component其实就是一个MonoBehaviour的子类,每一个组件其实就是用类似模板方法模式的做法,重写那些模板方法(事实上看上去更像是覆盖),然后作为一个父类对象被控制单元认知。然后每一个GameObject维护一个组件列表,在特定的时间来调用这些组件的模板方法。那么,组件列表可以考虑使用观察者模式或者订阅模式的方法来更新,也就实现了AddComponent的功能了。
用C++的话可以考虑维护一个这种组件对象的容器或者结构。总之我个人认为的思想就是这样了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询