U3D编辑器拓展

U3D除了提供Runtime class,还提供了Editor class用于编辑器的拓展开发,包括编辑器环境下的GUI类,编辑器工具类,编辑器操作类等。

自定义编辑窗口:

using UnityEditor;
public class MyWindow : EditorWindow {
static MyWindow myWindow;
[MenuItem("Window/MyWindow")]//在unity菜单Window下有MyWindow选项
static void Init()
{
myWindow = (MyWindow)EditorWindow.GetWindow(typeof(MyWindow), false, "MyWindow", false);
myWindow.Show();
}
void OnEnable()
{
}
void OnGUI()
{
EditorGUILayout.LabelField("聚焦窗体名字:"+EditorWindow.focusedWindow.ToString());
}
[MenuItem("Custom Editor/Focus Window")]
static void FocusWindow()
{
myWindow.Focus();
}
}

自定义Inspector视图:

using UnityEditor;
public class MyInspector: Editor {
void OnInspectorGUI()
{
}
}

自定义场景视图:

using UnityEngine;
using System.Collections;
/*samcen*/
public class Test : MonoBehaviour {
}

using UnityEditor;
using UnityEngine;

//自定义Tset脚本
[CustomEditor(typeof(Test))]
//请继承Editor
public class MyEditor : Editor
{
void OnSceneGUI()
{
//得到test脚本的对象
Test test = (Test) target;
//绘制文本框
Handles.Label(test.transform.position + Vector3.up*2,
test.transform.name +" : "+ test.transform.position.ToString() );
//开始绘制GUI
Handles.BeginGUI();
//规定GUI显示区域
GUILayout.BeginArea(new Rect(100, 100, 100, 100));
//GUI绘制一个按钮
if(GUILayout.Button("这是一个按钮!"))
{
Debug.Log("test");
}
//GUI绘制文本框
GUILayout.Label("我在编辑Scene视图");
GUILayout.EndArea();
Handles.EndGUI();
}
}

更多:

unity编辑器开发
[MenuItem]
[ContextMenu]
[AddComponentMenu]
需要调用静态函数。
在编辑器下也会执行OnGui,执行update.
编辑器脚本需要在Editor目录下属于UnityEditor命名空间,因为是在UnityEngine执行逻辑后面编译的,可以方便使用Excute下的代码。

需要窗口,需要该类继承自EditorWindow.
一般需要MenuItem添加静态方法调用返回该类实例。
窗口内部的OnGui方法需要重写,显示需要的控件,也可以使用EditorGUILayout在原生接口上提供更加有用方便的控件。
除了OnGUI,OnSeletionChange,OnFocus,OnLoseFocus也可以被调用。
编辑图片来自大图时候的设置:
textruetype sprite, SpriteMode type muilt.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值