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); } } }
// 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(); } }
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); }