65 lines
2.6 KiB
C#
65 lines
2.6 KiB
C#
using UnityEditor.Overlays;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace UnityEditor.ProBuilder.Overlays
|
|
{
|
|
//[Overlay(typeof(SceneView), "Scene Information", true)]
|
|
class SceneInformationOverlay : Overlay
|
|
{
|
|
Label m_FaceCountLabel = new Label();
|
|
Label m_TriCountLabel = new Label();
|
|
Label m_VertCountLabel = new Label();
|
|
Label m_SelectedFaceCountLabel = new Label();
|
|
Label m_SelectedEdgeCountLabel = new Label();
|
|
Label m_SelectedVertCountLabel = new Label();
|
|
|
|
public SceneInformationOverlay()
|
|
{
|
|
ProBuilderEditor.selectionUpdated += _ => UpdateSceneInfo();
|
|
MeshSelection.objectSelectionChanged += UpdateSceneInfo;
|
|
}
|
|
|
|
public override VisualElement CreatePanelContent()
|
|
{
|
|
displayName = "ProBuilder Information";
|
|
var root = new VisualElement();
|
|
root.style.flexDirection = FlexDirection.Column;
|
|
|
|
root.Add(CreateLabelLine(m_FaceCountLabel, "Faces:"));
|
|
root.Add(CreateLabelLine(m_TriCountLabel, "Triangles:"));
|
|
root.Add(CreateLabelLine(m_VertCountLabel, "Vertices:"));
|
|
var spacer = new VisualElement();
|
|
spacer.style.height = 10;
|
|
root.Add(spacer); // Spacer line
|
|
root.Add(CreateLabelLine(m_SelectedFaceCountLabel, "Selected Faces:"));
|
|
root.Add(CreateLabelLine(m_SelectedEdgeCountLabel, "Selected Edges:"));
|
|
root.Add(CreateLabelLine(m_SelectedVertCountLabel, "Selected Vertices:"));
|
|
|
|
UpdateSceneInfo();
|
|
|
|
return root;
|
|
}
|
|
|
|
void UpdateSceneInfo()
|
|
{
|
|
m_FaceCountLabel.text = MeshSelection.totalFaceCount.ToString();
|
|
m_TriCountLabel.text = MeshSelection.totalTriangleCountCompiled.ToString();
|
|
m_VertCountLabel.text = MeshSelection.totalCommonVertexCount + " (" + MeshSelection.totalVertexCountOptimized + ")";
|
|
m_SelectedFaceCountLabel.text = MeshSelection.selectedFaceCount.ToString();
|
|
m_SelectedEdgeCountLabel.text = MeshSelection.selectedEdgeCount.ToString();
|
|
m_SelectedVertCountLabel.text = MeshSelection.selectedSharedVertexCount + " (" + MeshSelection.selectedVertexCount+ ")";
|
|
}
|
|
|
|
VisualElement CreateLabelLine(Label targetLabel, string displayName)
|
|
{
|
|
var line = new VisualElement();
|
|
line.style.flexDirection = FlexDirection.Row;
|
|
line.Add(new Label(displayName));
|
|
targetLabel.style.unityFontStyleAndWeight = FontStyle.Bold;
|
|
line.Add(targetLabel);
|
|
return line;
|
|
}
|
|
}
|
|
}
|