博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编辑拓展 对空物体进行面板上的编辑 窗口 Slider Tag 文本 枚举
阅读量:7031 次
发布时间:2019-06-28

本文共 6448 字,大约阅读时间需要 21 分钟。

 

 

1.现有物体添加一些属性,这是对灯光 的新添加

结果是这样

 2.给一个空物体添加,写在editor里  要继承Editor  还应用命名空间,

2.1对面板上的不知道那个物体操作 所以引用

2.2 对一个新物体操作,它上边挂了一个脚本,对脚本操作,这里就写他名字:

 

2.3这哥特性影藏了public出来的东西

2.4按钮的选择

 

 

2.5材质球的选择,添加图片

 

 

 2.6手动拖动数字

2.7两种编辑方式,第一种是一张大图片,第二种就是图片上的。可以选择了

2.8 ,窗口坐标

2.9备注信息

替换中文信息

中文写法:

2.7 Slider,是控制他的值,所以控制值就可以创建slider的值,,左边的值是一个变值 从前面那个传过来,才可以移动

 这个限制 没有用,可以不用

2.8  字段我一般用属性去保护 不让其修改

2.7.1血条达到一定的值 然后改变颜色

上边这些,窗口,

第一个脚本

1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using UnityEditor; 5  6 [CustomEditor(typeof(Manen))]//加入继承操作的文本的特性 7  8 [CanEditMultipleObjects]//操作一个物体编辑的特性 9 10 public class CreateMane : Editor {
//操作与编辑下的东西 所以要继承编辑类11 bool isbutten;12 public override void OnInspectorGUI()13 {14 base.OnInspectorGUI();15 16 Manen m = (Manen)target;//实例化操作的脚本对象17 GUILayout.Label("这是新功能");18 19 20 //"BUtten按钮21 if (GUILayout.Button("BUtten按钮"))22 {23 isbutten = !isbutten;//点击了Butten就变成真的24 m.butten = isbutten;25 }26 27 //图片的操作28 m.texture= EditorGUILayout.ObjectField("选择图片", m.texture, typeof(Texture), true) as Texture;//用要操作的脚本接受 就可以对它进行选择了29 30 31 //窗口坐标32 m.rect= EditorGUILayout.RectField("窗口坐标", m.rect);33 34 //slider 35 //控制slider是控制它的数字 所以操作数字36 if (m.num>80&&m.num<100)37 {38 GUI.color = Color.green;39 }40 if (m.num<80&&m.num>20)41 {42 GUI.color = Color.red;43 }44 if (m.num<20)45 {46 GUI.color = Color.yellow;47 }48 m.num= EditorGUILayout.Slider("血量",m.num,0,100);//名字 最大值 左值 右值;最大值是哥变量, 用操作对象接受 他就可以实现 和里面一样的操作49 50 }51 }
View Code

第二个脚本 

 

1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4  5 public class Manen : MonoBehaviour { 6     [HideInInspector]//这个作用是隐藏public出来的东西 7     public string text; 8  9     //[HideInInspector]10     public bool butten;//面板上有了一个butten 11 12     [HideInInspector]13     public Texture texture;//选择图片14 15     [HideInInspector]16     public float num;//自由拖动数字17 18     //窗口坐标19     [HideInInspector]20     public Rect rect;21 }

 

 3 Tag的操作

 枚举

 

上边的颜色影响了下边,重新赋值白色就变回来啦

 

3.1值的改变:

3.2想要用开关控制值的输入:

 

 

3.3操作slide 让其显示血量的高低 然后提示:

,警告,正常,信息

3.4操作一切东西的展开,展开的东西可以是文本 slide ,默认是fase就是不展开

当slider的左值超过100《原本的float的值就变成整数》

 3.5让这个变成一行:

3.5.1

:

 3.6

 

 3.7文本里东西可以换行输入:

1 齐培良老师 2018/09/29 11:35:41 2 using System.Collections; 3 using System.Collections.Generic; 4 using UnityEngine; 5 using UnityEditor; 6 public enum Dir 7 { 8     Up, 9     Down,10     Left,11     Right12 }13 public class InspectMenu : MonoBehaviour14 {15     [HideInInspector]16     private string text;17     [HideInInspector]18     public bool IsButton;19     [HideInInspector]20     public Texture texture;21     [HideInInspector]22     //[Range(0,100)]//只能在0-100之间23     public float num;24     [HideInInspector]25     public Rect rect;26 27     public string Text28     {29         get30         {31             return text;32         }33 34         set35         {36             text = value;37         }38     }//一般定义的字段都要属性进行保护39     [HideInInspector]40     public Dir dir = Dir.Up;41     [HideInInspector]42     public float z1;43     [HideInInspector]44     public float z2;45     [HideInInspector]46     public float hp;47 48     public float C1;49     public float C2;50     public float s1;51     public string con;52 }
1 齐培良老师 2018/09/29 11:35:33 2 using System.Collections; 3 using System.Collections.Generic; 4 using UnityEngine; 5 using UnityEditor; 6 [CustomEditor(typeof(InspectMenu))] 7 [CanEditMultipleObjects]//操作一个物体编辑的特性 8 public class InspeactorEditor : Editor 9 {10 11     bool isButton;12     bool isToggle;13     bool isOpen;14     bool isShow;15     public override void OnInspectorGUI()16     {17         base.OnInspectorGUI();18         InspectMenu ins = (InspectMenu)target;19         //GUILayout.Label("这是新功能");20         //if (GUILayout.Button("这是新的按钮"))21         //{22         //    isButton = !isButton;23         //    ins.IsButton = isButton;24         //}25         GUILayout.Label("描述");26       ins.con=  EditorGUILayout.TextArea(ins.con);27         ins.texture = EditorGUILayout.ObjectField("选择图片", ins.texture, typeof(Texture), true) as Texture;28         ins.rect = EditorGUILayout.RectField("窗口坐标", ins.rect);29         ins.Text = EditorGUILayout.TextField("这是一个备注信息", ins.Text);30         if (ins.num > 80)31         {32             GUI.color = Color.green;33         }34         if (ins.num > 20 && ins.num < 80)35         {36             GUI.color = Color.yellow;37         }38         if (ins.num < 20)39         {40             GUI.color = Color.red;41         }42         ins.num = EditorGUILayout.Slider("血量", ins.num, 0, 100);//ins.num是变值43         GUI.color = Color.white;44         isToggle = EditorGUILayout.Toggle("是否开启", isToggle);45 46         ins.dir = (Dir)EditorGUILayout.EnumPopup("方向", ins.dir);47 48         isOpen = EditorGUILayout.BeginToggleGroup("是否开启输入功能", isOpen);//控制一组数据是否可以输入,都是Begin开始End结束,成对出现49         ins.z1 = EditorGUILayout.FloatField("值1", ins.z1);50         ins.z2 = EditorGUILayout.FloatField("值2", ins.z2);51         EditorGUILayout.EndToggleGroup();52         ins.hp=  EditorGUILayout.Slider("伤害值",ins.hp,0,60);53         if (ins.hp<15)54         {55             EditorGUILayout.HelpBox("你的伤害值太低了",MessageType.Warning);56         }57         if (ins.hp > 45)58         {59             EditorGUILayout.HelpBox("你的伤害值太高了", MessageType.Info);60         }61         isShow= EditorGUILayout.Foldout(isShow,"是否展开");62         if (isShow)63         {64             ins.C1 = EditorGUILayout.FloatField("值1", ins.C1);65             ins.C2 = EditorGUILayout.FloatField("值2", ins.C2);66             ins.s1 = EditorGUILayout.Slider("进度条", ins.s1, 0, 80);67         }68         if (GUILayout.Button("人物选择"))69         {70             Debug.Log("请选择人物");71         }72         EditorGUILayout.BeginHorizontal();73         if (GUILayout.Button("男一号"))74         {75             Debug.Log("男一号");76         }77         if (GUILayout.Button("男二号"))78         {79             Debug.Log("男二号");80         }81         if (GUILayout.Button("男三号"))82         {83             Debug.Log("男三号");84         }85         EditorGUILayout.EndHorizontal();86         GUILayout.Label("******以上是编辑器拓展的知识*****");87 88 89     }90 }
View Code

 

 

 

转载于:https://www.cnblogs.com/satanj/p/9722874.html

你可能感兴趣的文章
Android开发之Activity转场动画
查看>>
List集合三种遍历方法
查看>>
【译】OpenDaylight控制器:YANG Schema和Model
查看>>
C#访问修饰符(public,private,protected,internal,sealed,abstract)
查看>>
android消息线程和消息队列
查看>>
EXCEL中计算不重复单元格的个数
查看>>
二层设备与三层设备的区别--总结
查看>>
安装pytorch成功但cuda不可用
查看>>
unity__DrawCall的理解
查看>>
springboot架构下运用shiro后在configuration,通过@Value获取不到值,总是为null
查看>>
SQLServer 数据库镜像+复制切换方案
查看>>
Postman初探
查看>>
仿淘宝头像上传功能(一)——前端篇。
查看>>
Eclipse通过集成svn实现版本控制
查看>>
OS开发过程中常用开源库
查看>>
关于在多个UItextield切换焦点
查看>>
hdu 2768
查看>>
git记住用户名密码
查看>>
ElasticSearch(2)-安装ElasticSearch
查看>>
从mysql数据表中随机取出一条记录
查看>>