[UnityEditor基础]EditorStyles 编辑样式

本文转自: 雨松MOMO 2016年01月23日 于 雨松MOMO程序研究院 发表,有个人轻微修改,请点击链接查看原文,尊重楼主大大版权。


EditorStyles 编辑样式


我们在做编辑器的时候每个控件后面都有一个 参数是 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 styles = null;
	[MenuItem("Window/styles")]
	public static void Test() {
		EditorWindow.GetWindow("styles");
 
		styles = new List (); 
		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 ();
	}
}
然后我们在Unity里可以预览这些style的效果:

[UnityEditor基础]EditorStyles 编辑样式_第1张图片

[UnityEditor基础]EditorStyles 编辑样式_第2张图片


Unity圣典里也列出了这些Style,详情描述可参考:http://www.ceeger.com/Script/EditorStyles/EditorStyles.html

你可能感兴趣的:(Unity,Editor基础)