46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using UnityEditor;
|
|
|
|
namespace Obi
|
|
{
|
|
public class ObiBlueprintRenderModeMesh : ObiBlueprintRenderMode
|
|
{
|
|
public override string name
|
|
{
|
|
get { return "Mesh"; }
|
|
}
|
|
|
|
public ObiMeshBasedActorBlueprintEditor meshBasedEditor
|
|
{
|
|
get { return editor as ObiMeshBasedActorBlueprintEditor; }
|
|
}
|
|
|
|
public ObiBlueprintRenderModeMesh(ObiMeshBasedActorBlueprintEditor editor) : base(editor)
|
|
{
|
|
}
|
|
|
|
public override void OnSceneRepaint(SceneView sceneView)
|
|
{
|
|
if (meshBasedEditor.currentTool is ObiPaintBrushEditorTool)
|
|
{
|
|
ObiPaintBrushEditorTool paintTool = (ObiPaintBrushEditorTool)meshBasedEditor.currentTool;
|
|
|
|
float[] weights = new float[editor.selectionStatus.Length];
|
|
for (int i = 0; i < weights.Length; i++)
|
|
{
|
|
if (paintTool.selectionMask && !editor.selectionStatus[i])
|
|
weights[i] = 0;
|
|
else
|
|
weights[i] = 1;
|
|
}
|
|
|
|
float[] wireframeWeights = new float[paintTool.paintBrush.weights.Length];
|
|
for (int i = 0; i < wireframeWeights.Length; i++)
|
|
wireframeWeights[i] = paintTool.paintBrush.weights[i];
|
|
|
|
meshBasedEditor.DrawGradientMesh(weights, wireframeWeights);
|
|
}
|
|
else
|
|
meshBasedEditor.DrawGradientMesh();
|
|
}
|
|
}
|
|
} |