public static GameObject InstantiateWithPriority(Prefabrication prefab, State state)
        {
            GameObject newObject = CloneGameObject.Clone(prefab);

            gameStates[state].AddGameObjectWithPriority(newObject);
            return(newObject);
        }
        public static GameObject Instantiate(Prefabrication prefab)
        {
            GameObject newObject = CloneGameObject.Clone(prefab);

            currentState.AddGameObject(newObject);
            return(newObject);
        }
        public static GameObject Instantiate(Prefabrication prefab, Vector2 origin, State state)
        {
            GameObject newObject = CloneGameObject.Clone(prefab);

            ((Transform)newObject.GetComponent <Transform>()).Position = origin;
            gameStates[state].AddGameObject(newObject);
            return(newObject);
        }