Example #1
0
    protected virtual void OnDestroy()
    {
        Unlock();

        P3D_BrushPreview.Mark();
        P3D_BrushPreview.Sweep();
        P3D_TexturePreview.Mark();
        P3D_TexturePreview.Sweep();
    }
 public static void Mark()
 {
     for (int i = AllPreviews.Count - 1; i >= 0; i--)
     {
         P3D_TexturePreview preview = AllPreviews[i];
         if (preview != null)
         {
             preview.age = 5;
         }
     }
 }
 public static void Sweep()
 {
     for (int i = AllPreviews.Count - 1; i >= 0; i--)
     {
         P3D_TexturePreview preview = AllPreviews[i];
         if ((preview != null) && (preview.age > 1))
         {
             AllPreviews.RemoveAt(i);
             P3D_Helper.Destroy <GameObject>(preview.gameObject);
         }
     }
 }
Example #4
0
    // Draws the brush and texture previews in the main scene view
    protected override void OnScene(SceneView sceneView, Camera camera, Vector2 mousePosition)
    {
        if (sceneView == (SceneView)SceneView.sceneViews[0])
        {
            P3D_BrushPreview.Sweep();
            P3D_BrushPreview.Mark();

            P3D_TexturePreview.Sweep();
            P3D_TexturePreview.Mark();

            if (lastMousePosition != mousePosition)
            {
                sceneView.Repaint();
            }

            lastMousePosition = mousePosition;
        }

        UpdateLock();

        if (locked == true)
        {
            if (mousePosition.x >= 0.0f && mousePosition.x < sceneView.position.width && mousePosition.y >= 0.0f && mousePosition.y < sceneView.position.height)
            {
                if (Event.current.button == 0)
                {
                    if (Event.current.type == EventType.MouseDown || Event.current.type == EventType.MouseDrag)
                    {
                        if (colorPickerWindowIsOpened)
                        {
                            PickColor(camera, mousePosition);
                        }
                        else
                        {
                            Paint(camera, mousePosition);
                        }
                    }
                }
                if (!colorPickerWindowIsOpened)
                {
                    ShowBrushPreview(camera, mousePosition);
                }
            }

            if (Event.current.type == EventType.MouseUp)
            {
                FinishPaint();
            }
            //ShowTexturePreview();
        }
    }
Example #5
0
    private void ShowTexturePreview()
    {
        if (currentTexture != null && previewTextureOpacity > 0.0f)
        {
            var meshFilter = lockedGameObject.GetComponent <MeshFilter>();

            if (meshFilter != null)
            {
                var mesh = meshFilter.sharedMesh;

                if (mesh != null)
                {
                    P3D_TexturePreview.Show(mesh, currentMaterialIndex, lockedGameObject.transform, previewTextureOpacity, currentTexture, CurrentTiling, CurrentOffset);
                }
            }
        }
    }
    public static void Show(Mesh mesh, int submeshIndex, Transform transform, float opacity, Texture2D texture, Vector2 tiling, Vector2 offset)
    {
        for (int i = AllPreviews.Count - 1; i >= 0; i--)
        {
            P3D_TexturePreview preview = AllPreviews[i];
            if ((preview != null) && (preview.age > 0))
            {
                preview.UpdateShow(mesh, submeshIndex, transform, opacity, texture, tiling, offset);
                return;
            }
        }
        P3D_TexturePreview preview2 = new GameObject("P3D_TexturePreview")
        {
            hideFlags = HideFlags.HideAndDontSave
        }.AddComponent <P3D_TexturePreview>();

        preview2.hideFlags = HideFlags.HideAndDontSave;
        preview2.UpdateShow(mesh, submeshIndex, transform, opacity, texture, tiling, offset);
    }