Unity编辑器类在Scene下绘制球体
在Editor文件夹下创建脚本 HandlerTest
using UnityEngine;
using System.Collections;
using UnityEditor;
[CustomEditor(typeof(Arraw))]
public class HandlerTest : Editor {
float sphereSize = 3;
void OnSceneGUI()
{
float width = HandleUtility.GetHandleSize(Vector3.zero) * 0.5f;
Arraw arraw = (Arraw)target;
Handles.color = Color.red;
//绘制球体
Handles.SphereCap( 0, arraw.transform.position + new Vector3(5, 0, 0),
arraw.transform.rotation, sphereSize);
Handles.color = Color.green;
//绘制球体
Handles.SphereCap(0, arraw.transform.position + new Vector3( 0, 5, 0),
arraw.transform.rotation, sphereSize);
Handles.color = Color.blue;
//绘制球体
Handles.SphereCap(0, arraw.transform.position + new Vector3(0, 0, 5),
arraw.transform.rotation, sphereSize);
if (GUI.changed)
{
EditorUtility.SetDirty(arraw);
}
}
}
Arraw脚本如下,将其拖拽到需要绘制的脚本即可
using UnityEngine;
using System.Collections;
public class Arraw : MonoBehaviour {
}