예제 #1
0
 /// <summary>
 /// If useDefaultGUI is <c>true</c> and a usable object has been targeted, this method
 /// draws a selection message and targeting reticle.
 /// </summary>
 void OnGUI()
 {
     if (useDefaultGUI)
     {
         GUI.skin = UnityGUITools.GetValidGUISkin(guiSkin);
         if (guiStyle == null)
         {
             guiStyle           = new GUIStyle(GUI.skin.label);
             guiStyle.alignment = TextAnchor.UpperCenter;
         }
         Rect screenRect = new Rect(0, 0, Screen.width, Screen.height);
         if (usable != null)
         {
             bool inUseRange = (distance <= usable.maxUseDistance);
             guiStyle.normal.textColor = inUseRange ? inRangeColor : outOfRangeColor;
             string heading    = string.IsNullOrEmpty(usable.overrideName) ? usable.name : usable.overrideName;
             string useMessage = string.IsNullOrEmpty(usable.overrideUseMessage) ? defaultUseMessage : usable.overrideUseMessage;
             UnityGUITools.DrawText(screenRect, heading, guiStyle, TextStyle.Shadow);
             UnityGUITools.DrawText(new Rect(0, guiStyle.CalcSize(new GUIContent("Ay")).y, Screen.width, Screen.height), useMessage, guiStyle, TextStyle.Shadow);
             Texture2D reticleTexture = inUseRange ? reticle.inRange : reticle.outOfRange;
             if (reticleTexture != null)
             {
                 GUI.Label(new Rect(0.5f * (Screen.width - reticle.width), 0.5f * (Screen.height - reticle.height), reticle.width, reticle.height), reticleTexture);
             }
         }
     }
 }
예제 #2
0
 protected void SetGuiStyle()
 {
     guiSkin            = UnityGUITools.GetValidGUISkin(guiSkin);
     GUI.skin           = guiSkin;
     guiStyle           = new GUIStyle(string.IsNullOrEmpty(guiStyleName) ? GUI.skin.label : (GUI.skin.FindStyle(guiStyleName) ?? GUI.skin.label));
     guiStyle.alignment = alignment;
     guiStyleLineHeight = guiStyle.CalcSize(new GUIContent("Ay")).y;
 }
예제 #3
0
 protected void SetGuiStyle()
 {
     GUI.skin = UnityGUITools.GetValidGUISkin(guiSkin);
     if (guiStyle == null)
     {
         guiStyle           = new GUIStyle(GUI.skin.FindStyle(guiStyleName) ?? GUI.skin.label);
         guiStyle.alignment = alignment;
     }
 }
예제 #4
0
 /// <summary>
 /// If useDefaultGUI is <c>true</c> and a usable object has been targeted, this method
 /// draws a selection message and targeting reticle.
 /// </summary>
 void OnGUI()
 {
     if (useDefaultGUI)
     {
         GUI.skin = UnityGUITools.GetValidGUISkin(guiSkin);
         if (guiStyle == null)
         {
             guiStyle                  = new GUIStyle(GUI.skin.label);
             guiStyle.alignment        = TextAnchor.UpperCenter;
             guiStyle.normal.textColor = color;
         }
         Rect screenRect = new Rect(0, 0, Screen.width, Screen.height);
         if (currentUsable != null)
         {
             string heading    = string.IsNullOrEmpty(currentUsable.overrideName) ? currentUsable.name : currentUsable.overrideName;
             string useMessage = string.IsNullOrEmpty(currentUsable.overrideUseMessage) ? defaultUseMessage : currentUsable.overrideUseMessage;
             UnityGUITools.DrawText(screenRect, heading, guiStyle, TextStyle.Shadow);
             UnityGUITools.DrawText(new Rect(0, guiStyle.CalcSize(new GUIContent("Ay")).y, Screen.width, Screen.height), useMessage, guiStyle, TextStyle.Shadow);
         }
     }
 }