首页 >Unity3D频道 >【你好Unity3D】 > #你好Unity3D#系统所有EditorStyles
2016
01-23

#你好Unity3D#系统所有EditorStyles

我们在做编辑器的时候每个控件后面都有一个 参数是 GUIStyle通常unity会默认分配一个,但是怎么知道unity系统所有的style呢?我写了一段简单的代码把系统的sytle都反射出来了。希望大家喜欢。

20160123113554

 

20160123113622

代码在这里,注意这里我把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 ();
	}
}

 

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

#你好Unity3D#系统所有EditorStyles》有 4 条评论

  1. c6u2说:

    [给力][给力][给力][给力][给力]

  2. 你来了说:

    大神 下雪了 冻手不~

留下一个回复

你的email不会被公开。 必填项已用 * 标注。