内容将会持续更新,有错误的地方欢迎指正,谢谢!
拥有更好的学习体验 —— 不断努力,不断进步,不断探索 |
助力快速掌握 Scene 视图扩展 为初学者节省宝贵的学习时间,避免困惑! |
文章目录
一、通过Gizmo绘制辅助元素
Gizmo 是 Unity 中一种用于在编辑器中可视化调试和编辑的工具。
它们允许开发者在 Scene 视图中绘制各种几何形状或其他可视化元素,这些元素只在编辑器中可见,不会在游戏运行时显示。
之前已经写过相关文章:
https://blog.csdn.net/caiprogram123/article/details/135448539#GizmosDrawLine_176
二、通过Handles绘制辅助元素
在 Unity 编辑器中,Handles 类提供了一组用于在场景视图中绘制图形和元素的工具。
它主要用于在编辑模式下为开发者提供可视化辅助,帮助开发和调试过程。
Handles 可以用来绘制各种辅助图形,如点、线、矩形、圆形、立方体等。
例如,可以用 Handles.DrawLine 来显示两个点之间的连线,或者用 Handles.DrawWireCube 绘制一个立方体的轮廓。
using UnityEngine;
using UnityEditor;
[CustomEditor(typeof(Transform))]
public class HandlesExample : Editor
{
private void OnSceneGUI()
{
// 绘制红色实心圆盘
Handles.color = Color.red;
Handles.DrawSolidDisc(new Vector3(0, 0, 0), Vector3.up, 0.5f);
// 绘制绿色线段
Handles.color = Color.green;
Handles.DrawLine(Vector3.zero, new Vector3(1, 1, 0));
// 绘制蓝色矩形
Handles.color = Color.blue;
Handles.DrawSolidRectangleWithOutline(new Rect(1, 0, 1, 1), Color.blue, Color.black);
// 绘制圆环
Handles.color = Color.cyan;
Handles.DrawWireDisc(new Vector3(3, 0, 0), Vector3.up, 0.5f);
//绘制三维坐标
Handles.color = Color.red;
Handles.ArrowHandleCap(0, new Vector3(4, 0, 0), Quaternion.LookRotation(Vector3.right), 1.0f, EventType.Repaint);
Handles.color = Color.green;
Handles.ArrowHandleCap(0, new Vector3(4, 0, 0), Quaternion.LookRotation(Vector3.up), 1.0f, EventType.Repaint);
Handles.color = Color.blue;
Handles.ArrowHandleCap(0, new Vector3(4, 0, 0), Quaternion.LookRotation(Vector3.forward), 1.0f, EventType.Repaint);
// 绘制立方体轮廓
Handles.color = Color.magenta;
Handles.DrawWireCube(new Vector3(6, 0, 0), new Vector3(1, 1, 1));
// 绘制文本标签
Handles.color