123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- /*
- http://www.cgsoso.com/forum-211-1.html
- CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
- CGSOSO 主打游戏开发,影视设计等CG资源素材。
- 插件如若商用,请务必官网购买!
- daily assets update for try.
- U should buy the asset from home store if u use it in your project!
- */
- using UnityEngine;
- using System.Collections;
- public class PRHelper : MonoBehaviour
- {
- static PRHelper()
- {
- s_Styles = new Styles();
- }
- public static bool GroupHeader(string text, bool isExpanded)
- {
- Rect rect = GUILayoutUtility.GetRect(20f, 18f, s_Styles.header);
- s_Styles.Backup();
- s_Styles.Apply();
- if (Event.current.type == EventType.Repaint)
- s_Styles.header.Draw(rect, text, isExpanded, isExpanded, isExpanded, isExpanded);
- Event e = Event.current;
- if (e.type == EventType.MouseDown)
- {
- if (rect.Contains(e.mousePosition))
- {
- isExpanded = !isExpanded;
- e.Use();
- }
- }
- s_Styles.Revert();
- return isExpanded;
- }
- private static Styles s_Styles;
- private class Styles
- {
- public GUIStyle header = "ShurikenModuleTitle";
- internal Styles()
- {
- header.font = (new GUIStyle("Label")).font;
- }
- RectOffset m_Border;
- float m_FixedHeight;
- Vector2 m_ContentOffset;
- TextAnchor m_TextAlign;
- FontStyle m_TextStyle;
- int m_FontSize;
- RectOffset m_Margin;
- public void Backup()
- {
- m_Border = s_Styles.header.border;
- m_FixedHeight = s_Styles.header.fixedHeight;
- m_ContentOffset = s_Styles.header.contentOffset;
- m_TextAlign = s_Styles.header.alignment;
- m_TextStyle = s_Styles.header.fontStyle;
- m_FontSize = s_Styles.header.fontSize;
- m_Margin = s_Styles.header.margin;
- }
- public void Apply()
- {
- s_Styles.header.border = new RectOffset(7, 7, 4, 4);
- s_Styles.header.fixedHeight = 20;
- s_Styles.header.contentOffset = new Vector2(8f, -2f);
- s_Styles.header.alignment = TextAnchor.MiddleLeft;
- s_Styles.header.fontStyle = FontStyle.Normal;
- s_Styles.header.fontSize = 12;
- s_Styles.header.margin = new RectOffset(0, 0, 0, 5);
- }
- public void Revert()
- {
- s_Styles.header.border = m_Border;
- s_Styles.header.fixedHeight = m_FixedHeight;
- s_Styles.header.contentOffset = m_ContentOffset;
- s_Styles.header.alignment = m_TextAlign;
- s_Styles.header.fontStyle = m_TextStyle;
- s_Styles.header.fontSize = m_FontSize;
- s_Styles.header.margin = m_Margin;
- }
- }
- }
|