public static T Populate <T>(this object o, GameObject prefab, string parentID, Vector3 startPosition = default(Vector3), Quaternion startRotation = default(Quaternion))
        {
            var parent = ProcessingScene.Get(parentID);
            var go     = Object.Instantiate(prefab, parent).transform;

            go.localPosition = startPosition;
            go.localRotation = startRotation;
            go.localScale    = Vector3.one;
            return(go.GetComponentInChildren <T>());
        }
        public static Transform Populate(this object o, int poolID, GameObject prefab, string parentID, Vector3 startPosition = default(Vector3), Quaternion startRotation = default(Quaternion))
        {
            var parent = ProcessingScene.Get(parentID);
            var go     = ProcessingPool.pools[poolID].Spawn(prefab, parent).transform;

            go.localPosition = startPosition;
            go.localRotation = startRotation;
            go.localScale    = Vector3.one;
            return(go);
        }
        public static Transform Populate(this object o, string prefabID, string parentID, Vector3 startPosition = default(Vector3), Quaternion startRotation = default(Quaternion))
        {
            var parent = ProcessingScene.Get(parentID);
            var prefab = Box.Get <GameObject>(prefabID);
            var go     = Object.Instantiate(prefab, parent).transform;

            go.localPosition = startPosition;
            go.localRotation = startRotation;
            go.localScale    = Vector3.one;
            return(go);
        }
        public static T Populate <T>(this object o, int poolID, string prefabID, string parentID, Vector3 startPosition = default(Vector3), Quaternion startRotation = default(Quaternion))
        {
            var parent = ProcessingScene.Get(parentID);
            var prefab = Box.Get <GameObject>(prefabID);
            var go     = ProcessingPool.pools[poolID].Spawn(prefab, parent).transform;

            go.localPosition = startPosition;
            go.localRotation = startRotation;
            go.localScale    = Vector3.one;
            return(go.GetComponentInChildren <T>());
        }