center | 世界空间中圆盘的中心。 |
normal | 世界空间中圆盘的法线。 |
radius | 世界空间单位中圆盘的半径。 |
thickness | UI 点中的线厚度(零厚度绘制单像素线)。 |
绘制 3D 空间中平面圆盘的外形轮廓。
当当前 GUI 事件类型不是 Repaint 时,Unity 将忽略 DrawWireDisc
(即,什么都不会发生)。Handles.color 和 Handles.matrix 属性对圆盘位置进行颜色填充和额外转换。Unity 将忽略 DrawWireDisc
(即,什么都不会发生)。
场景视图中的线框圆盘。
using UnityEngine; using UnityEditor;
// draw a red circle around the scene cube [CustomEditor(typeof(CubeExample))] public class CubeEditor : Editor { void OnSceneGUI() { CubeExample cubeExample = (CubeExample)target;
Handles.color = Color.red; Handles.DrawWireDisc(cubeExample.transform.position, new Vector3(0, 1, 0), cubeExample.circleSize); } }
立方体
using UnityEngine;
public class CubeExample : MonoBehaviour { public float circleSize = 3.0f; }
可以使用 HandleUtility.GetHandleSize 来计算一个合适的控制柄尺寸。
圆盘线thickness
可以设置成可选值。零厚度绘制一个一个像素的线。更大的厚度值在 UI 点中表示线厚度。例如,如果显示缩放是 200%(请参见 EditorGUIUtility.pixelsPerPoint),那么 1.0 的厚度在屏幕上可能显示为两像素宽。
不同厚度的圆盘。
using UnityEngine; using UnityEditor;
public class ExampleScript : MonoBehaviour { }
// Displays circles of various thickness in the scene view [CustomEditor(typeof(ExampleScript))] public class ExampleEditor : Editor { public void OnSceneGUI() { var t = target as ExampleScript; var tr = t.transform; var position = tr.position; Handles.color = Color.yellow; for (int i = 0; i < 10; ++i) { Handles.DrawWireDisc(position + Vector3.right * i, Vector3.forward, 2, i); } } }