Entity Component System et ID unique
Bonjour,
Aujourd'hui, pas de question, je suis juste venu poster mon code pour ceux que ça intéresse. Il s'agit de proposer une solution simple et efficace à la génération d'ID unique pour les Components d'un ECS :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| unsigned counter = 0;
template <typename T>
struct Component
{
static unsigned mask;
};
template <typename T>
unsigned Component<T>::mask = counter++;
struct Position : Component<Position> {};
struct Motion : Component<Motion> {};
struct Health : Component<Health> {}; |
À noter que les mask s'initialisent de manière dynamique.