Hi. I’m sorry if this isn’t the best place to post this. I just figured I’d get the best answers here because everyone already knows how Unity works.
I’ve been writing a 3D component based game engine in C++. Since I’ve grown to love Unity, I’ve made my game engine work the same way with components. Currently I have a class Component, which all components inherit from. My GameObject class has a vector of Component pointers, which can hold any type of component. I also have template AddComponent<>() and GetComponent<>() functions, which you only pass the type to, and the GameObject creates the new component and adds it to the vector. They currently work just as they do in Unity. It also supports user created components, without having to change anythjng. The only thing is for the GetComponent<>() function I have to compare the type_info of the types, which I heard is ugly and shouldn’t be done?
So I was wondering, is that a good way to make a component system like Unity’s in C++? Or can anybody think of a better way? I’m making a lot of progress on my engine now. It would be easier to change it now than later on