One of the first things that I learned when I started to work with Unity is its tag system. It is very easy to understand as it is based on a concept of categorizing game objects into groups. Each game object belongs to a single group. Unity provides a convenient mechanism for checking whether a game object belongs to a group or not. You can also find a game object, or all game objects, of a group.
But the system does have a flaw. You cannot assign two or more “tags” to a game object, and this is quite annoying. For example, your bullets already had the “Bullet” tag, but you cannot tell who owns each one of those bullets, the player or the enemy thief. In this post, I offer a solution as a replacement for Unity tag system.