Beispiel #1
0
        public override void ManageDragging()
        {
            if (PointedTris != null && SelectedUV != null)
            {
                Vector2 uv        = SelectedUV.SharedEditedUV;
                Vector2 posUV     = PointedTris.LocalPosToEditedUV(MeshMGMT.collisionPosLocal);
                Vector2 newUV     = uv * 2 - posUV;
                bool    isChanged = newUV != lastCalculatedUV;
                lastCalculatedUV = newUV;

                if (isChanged && !EditorInputManager.GetMouseButtonUp(0))
                {
                    var prMesh = FreshPreviewMesh;
                    if (prMesh.selectedUV != null)
                    {
                        prMesh.selectedUV.SharedEditedUV      = lastCalculatedUV;
                        MeshMGMT.target.meshFilter.sharedMesh = new MeshConstructor(prMesh, MeshMGMT.target.MeshProfile, MeshMGMT.target.meshFilter.sharedMesh).Construct();
                    }
                }
            }

            if (EditorInputManager.GetMouseButtonUp(0))
            {
                MeshMGMT.SelectedUV.SharedEditedUV = lastCalculatedUV;
                EditedMesh.Dirty  = true;
                MeshMGMT.Dragging = false;
            }


            if (!EditorInputManager.GetMouseButton(0))
            {
                MeshMGMT.Dragging = false;
            }
        }