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 }
第二个脚本
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 }