Menu 菜单
菜单栏添加菜单按钮
using UnityEngine;
using System.Collections;
using UnityEditor;
public class Menu : MonoBehaviour {
[MenuItem("ShowDialog/ShowDialog")]
static void showDialog()
{
EditorUtility.DisplayDialog("Something Error!","This is a new dialog","close");
}
}
可扩展编辑器
Texture2D 要可读,改 Texture 属性为 Advance 并在Override 地方的 Format 要设置正确
MyInspector
using UnityEngine;
using System.Collections;
public class MyInspector : MonoBehaviour {
public Rect m_rectValue;
public Texture2D m_texture;
public int m_iCount;
public float m_fLength;
public string m_strSaveName;
public bool m_bIsSave;
public void SaveInfo(){
Debug.Log ("Rect:"+m_rectValue+"\n"+"Count:"+m_iCount+"\n"+"Length:"+m_fLength+"\n"
+"SaveName:"+ m_strSaveName+"\n"+"IsSave:"+m_bIsSave+"\n");
string newFileName = Application.dataPath+"/Resources/Texture/"+m_strSaveName+".png";
byte[] newByte = m_texture.EncodeToPNG();
System.IO.File.WriteAllBytes (newFileName, newByte);
}
}
MyEditor
using UnityEngine;
using System.Collections;
using UnityEditor;
//自定义MyInspector脚本
[CustomEditor(typeof(MyInspector))]
//在编辑模式下执行脚本,这里用处不大可以删除
[ExecuteInEditMode]
//请继承Editor
public class MyEditor : Editor {
//在这个方法中可以绘制面板
public override void OnInspectorGUI(){
//得到MyInspector对象
MyInspector myInspector = (MyInspector)target;
//绘制一个窗口
myInspector.m_rectValue = EditorGUILayout.RectField("窗口坐标",myInspector.m_rectValue);
myInspector.m_texture = EditorGUILayout.ObjectField ("增加一个贴图", myInspector.m_texture, typeof(Texture2D), true) as Texture2D;
myInspector.m_iCount = EditorGUILayout.IntField ("数量", myInspector.m_iCount);
myInspector.m_fLength = EditorGUILayout.FloatField ("长度", myInspector.m_fLength);
myInspector.m_strSaveName = EditorGUILayout.TextField ("保存文件名", myInspector.m_strSaveName);
myInspector.m_bIsSave = EditorGUILayout.Toggle ("是否保存", myInspector.m_bIsSave);
if (GUILayout.Button ("信息打印", GUILayout.Width (128))) {
myInspector.SaveInfo ();
}
}
}