Version: 5.5

Handles.DrawSolidRectangleWithOutline

Switch to Manual
public static void DrawSolidRectangleWithOutline (Vector3[] verts, Color faceColor, Color outlineColor);

Parameters

verts @param verts 4 вершины прямоугольника в мировых координатах.
faceColor @param center Центр круга.
outlineColor @param rotation Вращение маркера.

Description

Рисует твердый очерченный прямоугольник в 3D пространстве.


Solid rectangle with a black outline in the Scene View.

To use this example, save this script in the Assets/Editor folder:

using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(DrawSolidRect))] public class DrawSolidRectEditor : Editor { void OnSceneGUI() { DrawSolidRect t = target as DrawSolidRect;

Handles.color = Color.blue; Handles.Label(t.transform.position + Vector3.up * 2, t.transform.position.ToString() + "\nRange: " + t.range.ToString());

Handles.BeginGUI(); GUILayout.BeginArea(new Rect(Screen.width - 100, Screen.height - 80, 90, 50));

if (GUILayout.Button("Reset Range")) t.range = 5;

GUILayout.EndArea(); Handles.EndGUI();

Vector3 pos = t.transform.position;

Vector3[] verts = new Vector3[] { new Vector3(pos.x - t.range, pos.y, pos.z - t.range), new Vector3(pos.x - t.range, pos.y, pos.z + t.range), new Vector3(pos.x + t.range, pos.y, pos.z + t.range), new Vector3(pos.x + t.range, pos.y, pos.z - t.range) };

Handles.DrawSolidRectangleWithOutline(verts, new Color(1, 1, 1, 0.2f), new Color(0, 0, 0, 1)); Handles.color = Color.white;

foreach (Vector3 posCube in verts) t.range = Handles.ScaleValueHandle(t.range, posCube, Quaternion.identity, 1, Handles.CubeCap, 1); } }

...and place this script on the object where you want the SolidRectangle to appear:

using UnityEngine;

[ExecuteInEditMode] public class DrawSolidRect : MonoBehaviour { public float range = 5; }