我们在做编辑器的时候每个控件后面都有一个 参数是 GUIStyle通常unity会默认分配一个,但是怎么知道unity系统所有的style呢?我写了一段简单的代码把系统的sytle都反射出来了。希望大家喜欢。
代码在这里,注意这里我把unity私有的style也反射出来了,如果EditorStyles点不出来就像我这样反射一下就行了
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
大神 下雪了 冻手不~
哈哈,感觉良好