我们在做编辑器的时候每个控件后面都有一个 参数是 GUIStyle通常unity会默认分配一个,但是怎么知道unity系统所有的style呢?我写了一段简单的代码把系统的sytle都反射出来了。希望大家喜欢。
代码在这里,注意这里我把unity私有的style也反射出来了,如果EditorStyles点不出来就像我这样反射一下就行了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using UnityEngine; using System.Collections; using UnityEditor; using System.Reflection; using System.Collections.Generic; public class MyWindows : EditorWindow { static List<GUIStyle> styles = null; [MenuItem("Window/styles")] public static void Test() { EditorWindow.GetWindow<MyWindows>("styles"); styles = new List<GUIStyle> (); foreach(PropertyInfo fi in typeof(EditorStyles).GetProperties(BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)) { object o = fi.GetValue (null, null); if (o.GetType () == typeof(GUIStyle)) { styles.Add (o as GUIStyle); } } } public Vector2 scrollPosition = Vector2.zero; void OnGUI() { scrollPosition = GUILayout.BeginScrollView (scrollPosition); for (int i = 0; i < styles.Count; i++) { GUILayout.Label ("EditorStyles." +styles[i].name , styles[i]); } GUILayout.EndScrollView (); } } |
- 本文固定链接: https://www.xuanyusong.com/archives/3860
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
[给力][给力][给力][给力][给力]
哈哈 c6u2
大神 下雪了 冻手不~
哈哈,感觉良好