public static GameObject InstantiateAsSibling(InstantiationData i, int siblingTokenId)
        {
            var go      = Instantiate(i);
            var sibling = ManagedObjects.Find(siblingTokenId);

            if (sibling != null)
            {
                go.transform.parent = sibling.transform.parent;
            }
            else
            {
                throw new Exception("Sibling with Id " + siblingTokenId + " not found.");
            }
            return(go);
        }
        public static GameObject InstantiateAsChild(InstantiationData i, int parentTokenId)
        {
            var go     = Instantiate(i);
            var parent = ManagedObjects.Find(parentTokenId);

            if (parent != null)
            {
                go.transform.parent = parent.transform;
            }
            else
            {
                throw new Exception("Parent with Id " + parentTokenId + " not found.");
            }
            return(go);
        }