U3D编辑器拓展
来源:互联网 发布:网络机票代理 编辑:程序博客网 时间:2024/06/01 09:35
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]
需要调用静态函数。
[ExecuteInEditMode]
在编辑器下也会执行OnGui,执行update.
编辑器脚本需要在Editor目录下属于UnityEditor命名空间,因为是在UnityEngine执行逻辑后面编译的,可以方便使用Excute下的代码。
需要窗口,需要该类继承自EditorWindow.
一般需要MenuItem添加静态方法调用返回该类实例。
窗口内部的OnGui方法需要重写,显示需要的控件,也可以使用EditorGUILayout在原生接口上提供更加有用方便的控件。
除了OnGUI,OnSeletionChange,OnFocus,OnLoseFocus也可以被调用。
编辑图片来自大图时候的设置:
http://answers.unity3d.com/questions/591677/how-to-get-child-sprites-from-a-multiple-sprite-te.html
textruetype sprite, SpriteMode type muilt.
阅读全文
0 0
- U3D编辑器拓展
- Unity3d编辑器拓展
- unity编辑器拓展
- UNITY3D拓展编辑器 - 目录
- 雨松 Unity3D拓展编辑器
- Unity编辑器拓展<一>
- Unity编辑器拓展<二>
- unity拓展编辑器
- 【Unity&拓展编辑器&插件】开始插件,拓展编辑器教程
- 编辑器拓展二:序列化与编辑器
- 拓展编辑器功能--Unity自定义编辑器窗口
- Unity编辑器拓展之三:拓展Unity的Hierarchy面板
- u3d
- u3d
- u3d
- u3d
- u3d
- u3d
- 面向对象编程3大特性 7大原则
- C++的头文件和实现文件分别写什么
- CSS 巧用 :before和:after
- leetcode621. Task Scheduler
- STM32-串口IAP升级
- U3D编辑器拓展
- matlab入门
- c++里的const
- JZOJ 5395. 【NOIP2017提高A组模拟10.6】Count
- Java 动态代理的理解与Cglib动态代理实现
- 顺序表应用2:多余元素删除之建表算法
- Java程序员从笨鸟到菜鸟之(一)流程控制
- 【JZOJ5397】Biology
- 如何在Linux关闭前向其他系统用户发送自定义消息