void OnDestroy()
 {
     singletonInstance = null;
 }
    void Awake()
    {
        if (singletonInstance)
            Debug.LogError("have singletonInstance");

        singletonInstance = this;
        RaceFactoryState = new Dictionary<Race, List<State>>();
        buildToState = new Dictionary<GameObject, State>();

        for (int i = 0; i < (int)Race.eNone; ++i)
            RaceFactoryState[(Race)i] = new List<State>();
    }