版本:Unity 6 (6000.0)
语言简体中文
  • C#

Handles.DrawWireDisc

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有意见,但我们会阅读用户提出的每项建议的更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议的更改无法提交。请在几分钟后<a>重试</a>。感谢您抽出时间帮助我们提升 Unity 文档的质量。

关闭

取消

声明

public static void DrawWireDisc(Vector3 center, Vector3 normal, float radius, float thickness = 0.0f);

参数

center 世界空间中圆盘的中心。
normal 世界空间中圆盘的法线。
radius 世界空间单位中圆盘的半径。
thickness UI 点中的线厚度(零厚度绘制单像素线)。

描述

绘制 3D 空间中平面圆盘的外形轮廓。

当当前 GUI 事件类型不是 Repaint 时,Unity 将忽略 DrawWireDisc(即,什么都不会发生)。Handles.colorHandles.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); } } }