共有两个脚本,一个是有关Inspector面板的,一个是window的

using UnityEngine;
using System.Collections;
using UnityEditor;
 
//2.枚举下拉框
//public enum OPTIONS {
//    CUBE=0,
//    SPHERE,
//    PLANE,
//}
 
public class Texts : MonoBehaviour {
    //1.通过拖这个脚本可以改变颜色和曲线
    //public Color myColor;
    //public AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    //public AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    //public AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);
 
    //public Rect myRect;
    //public Texture myTexture;
 
    //void Update() {
    //    if (Input.GetKeyUp(KeyCode.A)) {
    //        print("MyColor" + myColor);  //输出颜色
    //        print("curveX" + curveX.Evaluate(Time.time));  //利用时间获取曲线的值
    //        print("curveY" + curveY.Evaluate(Time.time));
    //        print("curveZ" + curveZ.Evaluate(Time.time));
    //        print("myRect" + myRect);  //打印Rect的x,y,width,height
    //        print("myTexture" + myTexture);  //打印Texture
    //    }
    //    //根据三个曲线,实时获取他们的值,来设置该对象的位置
    //    transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    //}
    //2.枚举下拉框
    //public OPTIONS options = OPTIONS.PLANE;
    //public float number;
    //public StaticEditorFlags staticFlagMask = 0;
    //3.显示transform,rotation,scal
    //public Transform myTransform;
    //public Vector3 myRotation;
    //public Vector3 myLocal;
    //public int number;
    //4.Slider
    //public int xx = 3;
    //public int yy = 5;
    //public int zz = 80;
    //5.Layer, Mask, Tag
    //public int selectLayer = 0;
    //public int selectFlag = 0;
    //public string[] options = { "CanJump", "CanShoot", "CanSwim" };
    //public string tagStr = "";
    //6.Password
    //public string text = "Some text Here";
    //7.TextField  Toggle
    //public string MyName;
    //public bool showBtn = true;
    //8.vector2,vector3,vector4
    //public Vector2 p2;
    //public Vector3 p3;
    //public Vector4 p4;
    //9.Button
    //public string MyName;
    //public bool showBtn = true;
    //10.Toggle-Button-Label
    //public void MyTestA() {
    //    Debug.Log("Click");
    //}
    //11.toolbar
    //public void MyTestA() {
    //    Debug.Log("Click");
    //}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
using UnityEngine;
using System.Collections;
using UnityEditor;
 
//[CustomEditor(typeof(Texts))]
//10
//[CanEditMultipleObjects]
//[CustomEditor(typeof(Texts))]
//public class MyEditor :  Editor{
    //10.
    //private Texts texts;
    //private bool isTrue = true;
    //private void OnEnable() {
        //texts = (Texts)target;
    //}
    //public override void OnInspectorGUI() {  //该方法会绘制在inspector面板上
        //1.通过拖这个脚本可以改变颜色和曲线
        //Texts myTexts = (Texts)target;
        ////颜色
        //myTexts.myColor = EditorGUILayout.ColorField("New Color", myTexts.myColor);
        ////曲线
        //myTexts.curveX = EditorGUILayout.CurveField("Animation On X", myTexts.curveX);
        //myTexts.curveY = EditorGUILayout.CurveField("Animation On Y", myTexts.curveY);
        //myTexts.curveZ = EditorGUILayout.CurveField("Animation On Z", myTexts.curveZ);
        ////rect
        //myTexts.myRect = EditorGUILayout.RectField("窗口", myTexts.myRect);
        ////texture
        //myTexts.myTexture = EditorGUILayout.ObjectField("贴图", myTexts.myTexture,typeof(Texture),true)as Texture;
        //base.OnInspectorGUI();
        //2.枚举类型和 系统自带的 静态Mask枚举
        //Texts myTexts = (Texts)target;
        //myTexts.options = (OPTIONS)EditorGUILayout.EnumPopup("options", myTexts.options);
        //myTexts.number = EditorGUILayout.FloatField("number", myTexts.number);
        //myTexts.staticFlagMask = (StaticEditorFlags)EditorGUILayout.EnumMaskField("static Flags", myTexts.staticFlagMask);
        //3.修改transform
        //Texts myTexts = (Texts)target;
        //myTexts.myTransform = myTexts.transform;
        //myTexts.myTransform.position = EditorGUILayout.Vector3Field("MyPosition", myTexts.transform.position);
        //EditorGUILayout.Space();
        //Quaternion rot = myTexts.transform.rotation; //将Quaternion转换为vector3
        //Vector3 rotation = new Vector3(rot.eulerAngles.x, rot.eulerAngles.y, rot.eulerAngles.z);
        //myTexts.myRotation = EditorGUILayout.Vector3Field("myRotation", rotation);
        //myTexts.myLocal = EditorGUILayout.Vector3Field("myLocal", myTexts.transform.localScale);
        //myTexts.number = EditorGUILayout.IntField("number", myTexts.number);
        //4.Slider
        //myTexts.xx = EditorGUILayout.IntSlider(myTexts.xx, 1, 10);
        //myTexts.yy = EditorGUILayout.IntSlider(myTexts.yy, 2, 8);
        //myTexts.zz = EditorGUILayout.IntSlider(myTexts.zz, 0, 100);
        //5.Layer, Mask, Tag
        //myTexts.selectLayer = EditorGUILayout.LayerField("Layer Objects", myTexts.selectLayer);
        //myTexts.selectFlag = EditorGUILayout.MaskField("player Flags ", myTexts.selectFlag, myTexts.options);
        //myTexts.tagStr = EditorGUILayout.TagField("Tag for Objects:", myTexts.tagStr);
        //6.password
        //myTexts.text = EditorGUILayout.PasswordField("Type Somthing", myTexts.text);
        //7.TextField  Toggle
        //myTexts.MyName = EditorGUILayout.TextField("Object Name", myTexts.MyName);
        //myTexts.showBtn = EditorGUILayout.Toggle("Show Button", myTexts.showBtn);
        //8.vector2,vector3,vector4
        //myTexts.p2 = EditorGUILayout.Vector2Field("Point 2", myTexts.p2);
        //myTexts.p3 = EditorGUILayout.Vector3Field("Point 3", myTexts.p3);
        //myTexts.p4 = EditorGUILayout.Vector4Field("Point 4", myTexts.p4);
        //9.button
        //EditorGUILayout.HelpBox("abcde", MessageType.Error); //错误提示框
        //if (GUILayout.Button("Add Path Points")) {
        //    Debug.Log("ABCDE");
        //    return;
        //}
        //10.Toggle-Button-Label
        //EditorGUILayout.BeginVertical("box"); //开始水平布局,“box”为一个 方框区域
        //EditorGUILayout.LabelField("ABCDE");  //不可点的lable
        //EditorGUILayout.SelectableLabel("asdadsa");  //可点的label
        //if (GUILayout.Button("Click")) {  //创建button, 当点击按钮时,调用相应方法
        //    texts.MyTestA();
        //}
        //EditorGUILayout.EndVertical();
        //EditorGUILayout.Space();  //空格行
 
        //isTrue = EditorGUILayout.Toggle("isTrigger", isTrue);
        //EditorGUILayout.BeginVertical();
        //EditorGUI.BeginDisabledGroup(isTrue);  //如果isTrue为真,则下方显示在面板上(灰色)不可操作,为假则可操作
        //if (GUILayout.Button("Button")) {
        //    texts.MyTestA();
        //}
        //EditorGUI.EndDisabledGroup();
        //EditorGUILayout.EndVertical();
        //EditorGUILayout.HelpBox("help help help", MessageType.Warning);  //显示帮助框,类型为警告
        //EditorGUILayout.Space();
        //EditorGUILayout.HelpBox("aaa aa a", MessageType.Error);  //显示帮助框,类型为错误
        //11.toolbar
//    private Texts texts;
 
//    private int select = 0;
//    private int selected = 0;
//    private string[] names = { "one", "two", "three", "four" };
//    private static GUIContent[] myGUIContent = new GUIContent[4];
//    private Texture2D[] myTexture = new Texture2D[4];
 
//    private void OnEnable() {
//        texts = (Texts)target;
//        Init();
//    }
 
//    private void Init()  //初始化获取图片
//    {
 
//        for (int i = 0; i < 4; i++) {
//            //通过路径获取图片资源
//            myTexture[i] = (Texture2D)AssetDatabase.LoadAssetAtPath("Assets/MyTexture/1.png", typeof(Texture2D));
//            //将图片数组和字符串数组存进去
//            myGUIContent[i] = new GUIContent(myTexture[i], names[i]);
//        }
//    }
 
//    public override void OnInspectorGUI()  //绘制在Inspector面板上
//    {
//        EditorGUILayout.BeginVertical();
//        //创建 Toolbar  , 返回值为选中的项, 参数1 为 选中的项, 参数 2 每项上的文字
//        select = GUILayout.Toolbar(select, names);
 
//        EditorGUILayout.Space();
//        EditorGUILayout.Space();
//        //参数 1, 选中的项, 参数2 每项的图片, 参数3 整个Toolbar的宽度, 参数4 Toolbar的高度
//        selected = GUILayout.Toolbar(selected, myGUIContent, GUILayout.Width(300), GUILayout.Height(64));
//        EditorGUILayout.Space();
 
//        EditorGUILayout.EndVertical();
//    }
//}
    //12.window
//public class MyEditor : EditorWindow {
//    public string[] savedCopies = new string[5];  //定义一个字符串数组
//    public bool load = false;
 
//    [MenuItem("Examples/Improved copy buffer")] //在工具栏创建按钮
//    static void Init() {
//        MyEditor window = (MyEditor)EditorWindow.GetWindow(typeof(MyEditor));  //定义一个窗口对象
//    }
 
//    void OnGUI() {
//        load = EditorGUILayout.Toggle("Load:", load); //创建一个 Toggle
//        EditorGUILayout.BeginHorizontal();  //开始水平布局
//        for (int i = 0; i < savedCopies.Length; i++) {
//            if (GUILayout.Button(i.ToString())) // 创建这些按钮,并且当点击按钮时触发条件
//            {
//                if (load) {
//                    EditorGUIUtility.systemCopyBuffer = savedCopies[i]; // 获取值
//                } else {
//                    savedCopies[i] = "123"; //给每一个字符串赋值
//                }
//            }
//        }
//        EditorGUILayout.EndHorizontal();  //结束水平布局
 
//        for (int j = 0; j < savedCopies.Length; j++) {
//            EditorGUILayout.LabelField("Saved " + j, savedCopies[j]); //将所有已字符串以Label的形式显示出来
//        }
 
//        EditorGUILayout.LabelField("Current buffer:", EditorGUIUtility.systemCopyBuffer); //将获取的值以Label的形式显示出来
//        if (GUILayout.Button("Clear all saves"))  //清空所有的缓存
//        {
//            int i = 0;
//            foreach (string s in savedCopies) {
//                savedCopies[i] = "";
//                i++;
//            }
//        }
//    }
 
//    void OnInspectorUpdate() {
//        this.Repaint();  //重新画窗口
//    }
//}
    //13.实时获取摄像机的视野,摄像机视野内的所有对象均可被重画
//public class MyEditor : EditorWindow {
//    Camera myCamera = Camera.main;  //获取摄像机
//    RenderTexture renderTexture;   //
 
//    [MenuItem("Examples/Camera Viewer")]  //在菜单栏创建按钮
//    static void Init()
//    {
//        EditorWindow editorWindows = GetWindow(typeof(MyEditor));  //创建新窗口
//        editorWindows.autoRepaintOnSceneChange = true;
//        editorWindows.Show();
//    }
 
//    public void Awake()  //当跳出窗口时首先调用该方法
//    {
//        Debug.Log("Awake");
//        renderTexture = new RenderTexture((int)position.width,
//            (int)position.height, (int)RenderTextureFormat.ARGB32);  //获取renderTexture
//    }
 
//    public void Update()  //跳出窗口后每帧调用该方法
//    {
//        Debug.Log("update");
//        if (myCamera != null)
//        {
//            myCamera.targetTexture = renderTexture;
//            myCamera.Render();
//            myCamera.targetTexture = null;
//        }
 
//        if (renderTexture != null)
//        {
//            if (renderTexture.width != position.width || renderTexture.height != position.height)
//            {
//                renderTexture = new RenderTexture((int)position.width, (int)position.height,
//                    (int)RenderTextureFormat.ARGB32); //实时更新
//            }
//        }
//    }
 
//    void OnGUI()
//    {
//        if (renderTexture != null)
//        {
//            GUI.DrawTexture(new Rect(0.0f, 0.0f, position.width, position.height), renderTexture); //该方法一直绘制摄像机视野内的物体
//        }
//    }
//}
    //14.window_button
//    public class MyEditor : EditorWindow { 
//        private bool WantsMouseMove = false;
 
//    [MenuItem("Example/Window postion")]
//    static void Init()
//    {
//        MyEditor window = (MyEditor)EditorWindow.GetWindow(typeof(MyEditor));
//        window.position = new Rect(100, 100, 300, 300);  // 窗口的坐标
//    }
 
//    void OnGUI()
//    {
//        GUILayout.Space(20);
//        if (GUILayout.Button("myButton"))  //在窗口上创建一个按钮
//        {
//            Debug.Log("button");
//        }
//        //在窗口创建Toggle 并且获取 Toggle的
//        WantsMouseMove = EditorGUILayout.Toggle("Receive MoveMent", WantsMouseMove);
//        //
//        EditorGUILayout.LabelField("Mouse Postion:", Event.current.mousePosition.ToString());
 
//        if (Event.current.type == EventType.MouseMove)//当事件为移动鼠标
//        {
//            Repaint(); //重新绘制
//        }
//    }
//}
    //15.scrollview
//public class MyEditor : EditorWindow { 
//     Rect windowRect = new Rect(100, 100, 200, 200);
//    Vector3 scrollPos = Vector2.zero;
 
//    [MenuItem("Example/Window postion")]
//    static void Init()
//    {
//        MyEditor window = (MyEditor)EditorWindow.GetWindow(typeof(MyEditor));
//        window.position = new Rect(100, 100, 300, 300);  // 窗口的坐标
//    }
 
//    void OnGUI()
//    {
//        //创建 scrollView  窗口
//        scrollPos = GUI.BeginScrollView(new Rect(0, 0, position.width, position.height),
//            scrollPos, new Rect(0, 0, 1000, 1000));
 
//        GUILayout.Space(100);  // 100 像素宽的空格
 
//        if (GUILayout.Button("ButtonA")) //创建按钮
//        {
//            Debug.Log("AAA");
//        }
 
//        GUILayout.Space(50);
 
//        if (GUILayout.Button("ButtonB"))  //创建按钮
//        {
//            Debug.Log("BBB");
//        }
 
//        GUI.EndScrollView();  //结束 ScrollView 窗口
 
//        if (GUILayout.Button("ButtonC"))
//        {
//            Debug.Log("CCC");
//        }
 
//    }
 
//}
//16.Notification通知
//public class MyEditor : EditorWindow {
//    string notification = "This is a Notification";  //通知内容
 
//    [MenuItem("Example/Notification usage")]
//    static void Init() {
//        MyEditor window = (MyEditor)EditorWindow.GetWindow(typeof(MyEditor));
//        window.Show();
//    }
 
//    void OnGUI() {
//        notification = EditorGUILayout.TextField(notification);
 
//        if (GUILayout.Button("Show Notification")) {
//            this.ShowNotification(new GUIContent(notification)); //调用该方法发送通知
//        }
 
//        if (GUILayout.Button("Remove Notification")) {
//            this.RemoveNotification();  //取消通知
//        }
//    }
 
//    void OnInspectorUpdate()  //该方法每秒调用 10 帧
//      {
//        this.Repaint();
//    }
 
//    void OnHierarchyChange()  //当Hierarchy面板发生变化时,调用该方法
//      {
 
//    }
 
//    void OnProjectChange() //当 Project 面板发生变化时调用该方法
//    {
 
//    }
 
 
//    void OnSelectionChange() //当选择的对象改变时调用该方法
//        {
 
//    }
 
//    void Update()  //每秒调用 100 次
//        {
 
//    }
//}

Editor编辑器的一些用法的更多相关文章

  1. 剔除editor编辑器中的HTML标签

    1.剔除editor编辑器中的HTML标签 public static string striphtml(string strhtml)    {        string stroutput = ...

  2. Git 配置editor编辑器

    Git 配置editor编辑器 在ubuntu系统下,Git默认的编辑器是命令行,学名叫V什么的,使用起来诸多不便 在编辑提交日志的时候,用的比较多. 可以选择unbuntu默认的文档编辑器作为git ...

  3. zendstudio中加入对tpl文件的支持,用HTML Editor编辑器编辑

    zendstudio中加入对tpl文件的支持,用HTML Editor编辑器编辑:ThinkPHP中默认使用的tpl在zendstudio中默认打开都是文本编辑器的,没有语法提示开发效率很低,直接设置 ...

  4. easyui datagrid的editor编辑器如何为validatebox控件添加改变事件

    项目中需要为行编辑器Editor的某个列的文本框添加改变事件 需求:新增行时,为用户名输入特殊字符进行验证,不允许保存用户数据 html页面 <table id="gridlist&q ...

  5. 百度UEditor(富文本编辑器)的基础用法

    百度的这个编辑器挺强大的,这里只是用他的文本功能,没有介绍上传图片视频的. 我用是的SSH来写的项目. 1. 把下载的UEditor(ueditor1_4_3_1-utf8-jsp)解压后全部复制到W ...

  6. [转]Unity3D Editor 编辑器简易教程

    Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...

  7. 文本编辑器vim/vi用法完全解读

    vi用法 1.启动vim 2.命令模式和输入模式 3.退出vi 4.vi与ex命令 5.移动光标 6.跳转 7.搜索 8.插入文本 9.修改文本 10.替换文本 11.删除文本 12.恢复和撤销改变 ...

  8. Vue cli2.0 项目中使用Monaco Editor编辑器

    monaco-editor 是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与Visual Studio Code 功能几乎相同. 在项目中可能会用带代码编辑功能,或者展示代 ...

  9. vue 富文本编辑器 项目实战用法

    1.挑个富文本编辑器 首先针对自己项目的类型,确定自己要用啥编辑器. 1.1 wangeditor 如果一般类似博客这种项目不需要花里胡哨的,功能也不要求贼多的,推荐一下wangeditor(点击跳转 ...

随机推荐

  1. javascript快速入门19--定位

    元素尺寸 获取元素尺寸可以使用下面几种方式 元素的style属性width,height,但这些属性往往返回空值,因为它们只能返回使用行内style属性定义在元素上的样式 元素的currentStyl ...

  2. java获取src下包的文件的路径

    String params = getClass().getClassLoader().getResource("system-config.properties").getPat ...

  3. win 8 远程桌面文件复制问题(图)

    用win7连接远程桌面.能够非常方便的在宿主机之间文件复制粘贴. 但用win8.1远程连接桌面时,却发现不能拷贝文件了.查看网上资料,最后总结实现此步骤例如以下: win+R,执行mstsc.例如以下 ...

  4. Solr json,xml等文件数据导入(添加索引)linux下操作

    使用solr-5.3.1\example\exampledocs下的post.jar来完成数据导入 1.将想要导入的文件放在solr-5.3.1\example\exampledocs中,如aaa.x ...

  5. [Functional Programming] Randomly Pull an Item from an Array with the State ADT (Pair)

    Functor composition is a powerful concept that arises when we have one Functor nested in another Fun ...

  6. formidable 模块化开发 代码拆分(解耦) nodejs图片服务器架构

    引言:程序要做到:健壮性.低耦合.可扩展.方便程序员分工合作 上传图片值nodejs服务器并显示图片的源代码: post.html : <!DOCTYPE html> <html l ...

  7. A.0 B.1 C.2 D.3

    17. 以下哪个不是广告平台? A.Admob B.Domob C.InMobi D.TalkingData 错误 应该选择:D.TalkingData 10. 哪个不是免费的工具? A.Xcode  ...

  8. ipv6 dns list

    ip v6 DNS list: 将首选DNS服务器地址填上2001:778::37 备用DNS服务器地址填上2001:df8:0:7::1

  9. pthread_barrier_init,pthread_barrier_wait简介(转)

    pthread_barrier 系列函数在<pthread.h>中定义,用于多线程的同步,它包含三个函数: --pthread_barrier_init() --pthread_barri ...

  10. detach与remove区别,以及detach保留被删除的元素数据,使用

    detach() 会保留所有绑定的事件.附加的数据,这一点与 remove() 不同. remove掉元素后,元素再也找不回了.但是detach还能找回来,还能保留下来. 实现方式如下代码: < ...