void PrefabStageOpened(PrefabStage stage) { if (m_PreviewObject != null) { EditorUtility.MoveToActiveRoot(m_PreviewObject); } }
void SetPreviewMesh(ProBuilderMesh mesh) { ApplyPreviewTransform(mesh); Mesh umesh = mesh.mesh; if (umesh != null) { umesh.hideFlags = HideFlags.DontSave; } if (m_PreviewObject) { if (!m_PreviewObject.TryGetComponent(out MeshFilter mf)) { mf = m_PreviewObject.AddComponent <MeshFilter>(); } if (mf.sharedMesh != null) { DestroyImmediate(mf.sharedMesh); } m_PreviewObject.GetComponent <MeshFilter>().sharedMesh = umesh; mesh.preserveMeshAssetOnDestroy = true; m_PreviewObject.name = mesh.gameObject.name; if (!m_PreviewObject.name.EndsWith("-preview")) { m_PreviewObject.name += "-preview"; } DestroyImmediate(mesh.gameObject); } else { m_PreviewObject = mesh.gameObject; m_PreviewObject.hideFlags = HideFlags.DontSave; mesh.preserveMeshAssetOnDestroy = true; DestroyImmediate(mesh); Selection.activeTransform = m_PreviewObject.transform; m_PreviewObject.name += "-preview"; } m_PreviewObject.GetComponent <MeshRenderer>().sharedMaterial = BuiltinMaterials.ShapePreviewMaterial; EditorUtility.MoveToActiveRoot(m_PreviewObject.gameObject); }