You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
3.5 KiB
115 lines
3.5 KiB
using UnityEngine; |
|
using System.Collections; |
|
|
|
namespace Fungus |
|
{ |
|
/** |
|
* Defines visual appearance of a Page. |
|
* Usage: |
|
* 1. Add this component to an empty game object |
|
* 2. Customize the style properties |
|
* 3. Assign the style object to the pageStyle property of the Page you wish to style |
|
*/ |
|
public class PageStyle : MonoBehaviour |
|
{ |
|
// The font size for title, say and option text is calculated by multiplying the screen height |
|
// by the corresponding font scale. Text appears the same size across all device resolutions. |
|
|
|
/// Title font size as a fraction of screen height. |
|
public float titleFontScale = 1f / 20f; |
|
|
|
/// Say font size as a fraction of screen height. |
|
public float sayFontScale = 1f / 25f; |
|
|
|
/// Continue font size as a fraction of screen height. |
|
public float continueFontScale = 1f / 30f; |
|
|
|
/// Option font size as a fraction of screen height. |
|
public float optionFontScale = 1f / 25f; |
|
|
|
/// Style for title text |
|
public GUIStyle titleStyle; |
|
|
|
/// Style for say text |
|
public GUIStyle sayStyle; |
|
|
|
/// Style for continue button |
|
public GUIStyle continueStyle; |
|
|
|
/// Style for option text |
|
public GUIStyle optionStyle; |
|
|
|
/// Style for option text (alternate rows) |
|
public GUIStyle optionAlternateStyle; |
|
|
|
/// Style for text box |
|
public GUIStyle boxStyle; |
|
|
|
/** |
|
* Returns the style for Title text. |
|
* Overrides the font size to compensate for varying device resolution. |
|
* Font size is calculated as a fraction of the current screen height. |
|
*/ |
|
public GUIStyle GetScaledTitleStyle() |
|
{ |
|
GUIStyle style = new GUIStyle(titleStyle); |
|
style.fontSize = Mathf.RoundToInt((float)Screen.height * titleFontScale); |
|
return style; |
|
} |
|
|
|
/** |
|
* Returns the style for Say text. |
|
* Overrides the font size to compensate for varying device resolution. |
|
* Font size is calculated as a fraction of the current screen height. |
|
*/ |
|
public GUIStyle GetScaledSayStyle() |
|
{ |
|
GUIStyle style = new GUIStyle(sayStyle); |
|
style.fontSize = Mathf.RoundToInt((float)Screen.height * sayFontScale); |
|
return style; |
|
} |
|
|
|
/** |
|
* Returns the style for Option buttons. |
|
* Overrides the font size to compensate for varying device resolution. |
|
* Font size is calculated as a fraction of the current screen height. |
|
* @param alternateRow If true, will use the alternate row option style |
|
*/ |
|
public GUIStyle GetScaledOptionStyle() |
|
{ |
|
GUIStyle style; |
|
style = new GUIStyle(optionStyle); |
|
style.fontSize = Mathf.RoundToInt((float)Screen.height * optionFontScale); |
|
return style; |
|
} |
|
|
|
/** |
|
* Returns the alternate style for Option buttons. |
|
* This can be used to create alternating color rows. |
|
* Overrides the font size to compensate for varying device resolution. |
|
* Font size is calculated as a fraction of the current screen height. |
|
* @param alternateRow If true, will use the alternate row option style |
|
*/ |
|
public GUIStyle GetScaledOptionAlternateStyle() |
|
{ |
|
GUIStyle style; |
|
style = new GUIStyle(optionAlternateStyle); |
|
style.fontSize = Mathf.RoundToInt((float)Screen.height * optionFontScale); |
|
return style; |
|
} |
|
|
|
/** |
|
* Returns the style for the Continue button. |
|
* Overrides the font size to compensate for varying device resolution. |
|
* Font size is calculated as a fraction of the current screen height. |
|
* @param alternateRow If true, will use the alternate row option style |
|
*/ |
|
public GUIStyle GetScaledContinueStyle() |
|
{ |
|
GUIStyle style; |
|
style = new GUIStyle(continueStyle); |
|
style.fontSize = Mathf.RoundToInt((float)Screen.height * continueFontScale); |
|
return style; |
|
} |
|
} |
|
} |