private void CreatePreviewFor(VR_Grabbable grabbable)
        {
            previewOwner = grabbable.gameObject;
            DropZoneInfo dropZoneInfo = grabbable.GetComponent <DropZoneInfo>();

            preview = new GameObject(grabbable.gameObject.name + "_Preview");


            MeshFilter[]      meshFilters = grabbable.GetComponentsInChildren <MeshFilter>();
            CombineInstance[] combine     = new CombineInstance[meshFilters.Length];
            int i = 0;

            while (i < meshFilters.Length)
            {
                combine[i].mesh      = meshFilters[i].sharedMesh;
                combine[i].transform = grabbable.transform.worldToLocalMatrix * meshFilters[i].transform.localToWorldMatrix;

                i++;
            }

            MeshFilter filter = preview.AddComponent <MeshFilter>();

            filter.mesh = new Mesh();
            filter.mesh.CombineMeshes(combine);

            MeshRenderer renderer = preview.AddComponent <MeshRenderer>();

            renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
            renderer.receiveShadows    = false;
            renderer.material          = transparentMat;
            renderer.material.color    = new Color(1.0f, 1.0f, 1.0f, 0.5f);


            preview.transform.position = CalculateDropEndPosition(grabbable);
            preview.transform.rotation = CalculateDropEndRotation(grabbable);

            if (dropZoneInfo != null)
            {
                Vector3 scale = dropZoneInfo == null ? grabbable.transform.localScale : dropZoneInfo.OriginalScale;
                scale *= dropZoneInfo.ScaleModifier;
                preview.transform.localScale = scale;
            }
            else
            {
                preview.transform.localScale = grabbable.transform.lossyScale;
            }

            preview.transform.parent = dropPoint;
        }
        private void OnThisDropStateChange(VR_Grabbable grabbable)
        {
            if (grabbable == null || !disableCollidersOnDrop)
            {
                return;
            }


            Collider[] collideraArray = grabbable.GetComponentsInChildren <Collider>();

            for (int n = 0; n < collideraArray.Length; n++)
            {
                collideraArray[n].enabled = false;
            }
        }