TurnBasedStrategyCourse/Library/PackageCache/com.unity.probuilder@5.1.0/Editor/MenuActions/Object/TriangulateObject.cs

48 lines
1.7 KiB
C#

using UnityEngine.ProBuilder;
using UnityEngine;
using UnityEngine.ProBuilder.MeshOperations;
namespace UnityEditor.ProBuilder.Actions
{
sealed class TriangulateObject : MenuAction
{
public override ToolbarGroup group { get { return ToolbarGroup.Object; } }
public override Texture2D icon { get { return IconUtility.GetIcon("Toolbar/Object_Triangulate", IconSkin.Pro); } }
public override TooltipContent tooltip { get { return s_Tooltip; } }
public override string menuTitle { get { return "Triangulate"; } }
static readonly TooltipContent s_Tooltip = new TooltipContent
(
"Triangulate Objects",
@"Removes all quads and n-gons on the mesh and inserts triangles instead. Use this and a hard smoothing group to achieve a low-poly facetized look."
);
public override bool enabled
{
get { return base.enabled && MeshSelection.selectedObjectCount > 0; }
}
protected override ActionResult PerformActionImplementation()
{
if (MeshSelection.selectedObjectCount < 1)
return ActionResult.NoSelection;
UndoUtility.RecordSelection("Triangulate Objects");
foreach (var mesh in MeshSelection.topInternal)
{
mesh.ToMesh();
mesh.ToTriangles(mesh.facesInternal);
mesh.Refresh();
mesh.Optimize();
mesh.ClearSelection();
}
ProBuilderEditor.Refresh();
var c = MeshSelection.selectedObjectCount;
return new ActionResult(ActionResult.Status.Success, "Triangulate " + c + (c > 1 ? " Objects" : " Object"));
}
}
}