Beispiel #1
0
            public void DropPreviewObjects(IUsesPlaceSceneObjects placer)
            {
                var count                 = m_GrabData.Count;
                var transforms            = new Transform[count];
                var targetPositionOffsets = new Vector3[count];
                var targetRotations       = new Quaternion[count];
                var targetScales          = new Vector3[count];

                for (var i = 0; i < count; i++)
                {
                    var grabData = m_GrabData[i];
                    transforms[i]            = grabData.transform;
                    targetPositionOffsets[i] = grabData.centerPositionOffset;
                    targetRotations[i]       = grabData.originalRotation;
                    targetScales[i]          = grabData.originalScale;
                }

                if (hasPreview)
                {
                    placer.PlaceSceneObjects(transforms, targetPositionOffsets, targetRotations, targetScales);
                }

                m_GrabData.Clear();
                hasPreview = false;
            }
        /// <summary>
        /// Method used to place groups of objects in the scene/MiniWorld
        /// </summary>
        /// <param name="user">The functionality user</param>
        /// <param name="transforms">Array of Transforms to place</param>
        /// <param name="targetPositionOffsets">Array of per-object target positions</param>
        /// <param name="targetRotations">Array of per-object target rotations</param>
        /// <param name="targetScales">Array of per-object target scales</param>
        public static void PlaceSceneObjects(this IUsesPlaceSceneObjects user, Transform[] transforms, Vector3[] targetPositionOffsets, Quaternion[] targetRotations, Vector3[] targetScales)
        {
#if !FI_AUTOFILL
            user.provider.PlaceSceneObjects(transforms, targetPositionOffsets, targetRotations, targetScales);
#endif
        }