public void ResetPreviewInstance()
{
if (m_PreviewUtility == null)
{
InitPreviewUtility();
}
DestroyPreviewInstance();
if (palette != null)
{
m_PaletteInstance = previewUtility.InstantiatePrefabInScene(palette);
// Prevent palette from overriding the prefab while it is active, unless user saves the palette
PrefabUtility.DisconnectPrefabInstance(m_PaletteInstance);
EditorUtility.InitInstantiatedPreviewRecursive(m_PaletteInstance);
m_PaletteInstance.transform.position = new Vector3(0, 0, 0);
m_PaletteInstance.transform.rotation = Quaternion.identity;
m_PaletteInstance.transform.localScale = Vector3.one;
string assetPath = AssetDatabase.GetAssetPath(palette);
GridPalette paletteAsset = AssetDatabase.LoadAssetAtPath <GridPalette>(assetPath);
if (paletteAsset != null)
{
if (paletteAsset.cellSizing == GridPalette.CellSizing.Automatic)
{
Grid grid = m_PaletteInstance.GetComponent <Grid>();
if (grid != null)
{
grid.cellSize = GridPaletteUtility.CalculateAutoCellSize(grid, grid.cellSize);
}
else
{
Debug.LogWarning("Grid component not found from: " + assetPath);
}
}
}
else
{
Debug.LogWarning("GridPalette subasset not found from: " + assetPath);
}
foreach (var renderer in m_PaletteInstance.GetComponentsInChildren <Renderer>())
{
renderer.gameObject.layer = Camera.PreviewCullingLayer;
renderer.allowOcclusionWhenDynamic = false;
}
foreach (var transform in m_PaletteInstance.GetComponentsInChildren <Transform>())
{
transform.gameObject.hideFlags = HideFlags.HideAndDontSave;
}
PreviewRenderUtility.SetEnabledRecursive(m_PaletteInstance, false);
clipboardView.ResetPreviewMesh();
}
}