private bool IdentifyGrabTargets(IEnumerable <GameObject> targetObjects)
        {
            _targetParents = GameObjectEx.FilterParentsOnly(targetObjects);
            if (_targetParents == null || _targetParents.Count == 0)
            {
                return(false);
            }

            _grabTargets.Clear();
            foreach (var targetObject in _targetParents)
            {
                if (targetObject.HierarchyHasObjectsOfType(GameObjectType.Terrain))
                {
                    return(false);
                }
                if (!targetObject.HierarchyHasObjectsOfType(GameObjectType.Mesh | GameObjectType.Sprite))
                {
                    return(false);
                }

                _grabTargets.Add(new GrabTarget(targetObject));
            }

            return(_grabTargets.Count != 0);
        }
        public static void RecordObjectTransforms(IEnumerable <GameObject> gameObjects)
        {
            var transforms = GameObjectEx.GetObjectTransforms(gameObjects);

            RecordTransforms(transforms);
        }