public override void DrawPrototypeBoxButtons() { if (!Application.isPlaying) { GPUInstancerEditorConstants.DrawColoredButton(GPUInstancerEditorConstants.Contents.generatePrototypes, GPUInstancerEditorConstants.Colors.darkBlue, Color.white, FontStyle.Bold, Rect.zero, () => { if (EditorUtility.DisplayDialog(GPUInstancerEditorConstants.TEXT_generatePrototypesConfirmation, GPUInstancerEditorConstants.TEXT_generatePrototypeAreYouSure, GPUInstancerEditorConstants.TEXT_generatePrototypes, GPUInstancerEditorConstants.TEXT_cancel)) { _treeManager.GeneratePrototypes(true); } }); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_generatePrototypesTree); GPUInstancerEditorConstants.DrawColoredButton(GPUInstancerEditorConstants.Contents.regenerateBillboards, GPUInstancerEditorConstants.Colors.darkBlue, Color.white, FontStyle.Bold, Rect.zero, () => { if (EditorUtility.DisplayDialog(GPUInstancerEditorConstants.TEXT_regenerateBillboardsConfirmation, GPUInstancerEditorConstants.TEXT_regenerateBillboardsAreYouSure, GPUInstancerEditorConstants.TEXT_regenerateBillboards, GPUInstancerEditorConstants.TEXT_cancel)) { foreach (GPUInstancerPrototype prototype in _treeManager.prototypeList) { if (prototype.useGeneratedBillboard) { GPUInstancerUtility.GeneratePrototypeBillboard(prototype, true); } } } }); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_regenerateBillboards); } }
public void DrawGPUInstancerManagerGUILayout() { int prototypeRowCount = Mathf.FloorToInt((EditorGUIUtility.currentViewWidth - 30f) / PROTOTYPE_RECT_SIZE); EditorGUILayout.BeginVertical(GPUInstancerEditorConstants.Styles.box); GPUInstancerEditorConstants.DrawCustomLabel(GPUInstancerEditorConstants.TEXT_prototypes, GPUInstancerEditorConstants.Styles.boldLabel); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_prototypes); if (!Application.isPlaying) { GPUInstancerEditorConstants.DrawColoredButton(GPUInstancerEditorConstants.Contents.generatePrototypes, GPUInstancerEditorConstants.Colors.darkBlue, Color.white, FontStyle.Bold, Rect.zero, () => { if (EditorUtility.DisplayDialog(GPUInstancerEditorConstants.TEXT_generatePrototypesConfirmation, GPUInstancerEditorConstants.TEXT_generatePrototypeAreYouSure, GPUInstancerEditorConstants.TEXT_generatePrototypes, GPUInstancerEditorConstants.TEXT_cancel)) { _treeManager.GeneratePrototypes(true); } }); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_generatePrototypesTree); GPUInstancerEditorConstants.DrawColoredButton(GPUInstancerEditorConstants.Contents.regenerateBillboards, GPUInstancerEditorConstants.Colors.darkBlue, Color.white, FontStyle.Bold, Rect.zero, () => { if (EditorUtility.DisplayDialog(GPUInstancerEditorConstants.TEXT_regenerateBillboardsConfirmation, GPUInstancerEditorConstants.TEXT_regenerateBillboardsAreYouSure, GPUInstancerEditorConstants.TEXT_regenerateBillboards, GPUInstancerEditorConstants.TEXT_cancel)) { foreach (GPUInstancerPrototype prototype in _treeManager.prototypeList) { if (prototype.useGeneratedBillboard) { GPUInstancerUtility.GeneratePrototypeBillboard(prototype, _treeManager.billboardAtlasBindings, true); } } } }); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_regenerateBillboards); } if (prototypeContents == null || prototypeContents.Length != _treeManager.prototypeList.Count) { GeneratePrototypeContents(); } int i = 0; EditorGUILayout.BeginHorizontal(); foreach (GPUInstancerPrototype prototype in _treeManager.prototypeList) { if (prototype == null) { continue; } if (i != 0 && i % prototypeRowCount == 0) { EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); } DrawGPUInstancerPrototypeButton(prototype, prototypeContents[i]); i++; } if (i != 0 && i % prototypeRowCount == 0) { EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); } if (!Application.isPlaying) { DrawGPUInstancerPrototypeAddButton(); } EditorGUILayout.EndHorizontal(); DrawHelpText(GPUInstancerEditorConstants.HELPTEXT_addprototypetree); DrawGPUInstancerPrototypeBox(_treeManager.selectedPrototype, prop_isManagerFrustumCulling.boolValue, prop_isManagerOcclusionCulling.boolValue, _treeManager.shaderBindings, _treeManager.billboardAtlasBindings); EditorGUILayout.EndVertical(); }