Adventure Creator  1.66.1
An adventure game toolkit for Unity, by Chris Burton, ICEBOX Studios 2013-2018
AC.MenuButton Class Reference
Inheritance diagram for AC.MenuButton:
AC.MenuElement AC.ITranslatable

Public Member Functions

override void Declare ()
 
override MenuElement DuplicateSelf (bool fromEditor, bool ignoreUnityUI)
 Creates and returns a new MenuElement that has the same values as itself. More...
 
override void Initialise (AC.Menu _menu)
 Performs any initialisation that can only be done once the element has been instantiated at runtime. More...
 
override void LoadUnityUI (AC.Menu _menu, Canvas canvas)
 Initialises the linked Unity UI GameObject. More...
 
override GameObject GetObjectToSelect (int slotIndex=0)
 Gets the linked Unity UI GameObject associated with this element. More...
 
override RectTransform GetRectTransform (int _slot)
 Gets the boundary of the element. More...
 
override void SetUIInteractableState (bool state)
 Sets the interactive state of any linked Unity UI gameobjects. More...
 
override void ShowGUI (Menu menu)
 
override bool CheckConvertGlobalVariableToLocal (int oldGlobalID, int newLocalID)
 Checks if the Elements makesreferences from a given global variable to a given local variable More...
 
override int GetVariableReferences (int varID)
 Gets the number of references the MenuElement makes to a global variable More...
 
void ShowClick ()
 
override void PreDisplay (int _slot, int languageNumber, bool isActive)
 Performs all calculations necessary to display the element. More...
 
override void Display (GUIStyle _style, int _slot, float zoom, bool isActive)
 Draws the element using OnGUI More...
 
override string GetLabel (int slot, int languageNumber)
 Gets the display text of the element More...
 
override bool IsSelectedByEventSystem (int slotIndex)
 Checks if the element is selected by Unity UI's EventSystem. More...
 
override void RecalculateSize (MenuSource source)
 Recalculates the element's size. This should be called whenever a Menu's shape is changed. More...
 
override void ProcessClick (AC.Menu _menu, int _slot, MouseState _mouseState)
 Performs what should happen when the element is clicked on. More...
 
override void ProcessContinuousClick (AC.Menu _menu, MouseState _mouseState)
 Performs what should happen when the element is clicked on continuously. More...
 
string GetHotspotLabel (int languageNumber)
 Gets the text to place in the Hotspot label buffer (in PlayerMenus) when the mouse hovers over the element. More...
 
string GetTranslatableString (int index)
 
int GetTranslationID (int index)
 Gets the translation ID of a given text index. More...
 
int GetNumTranslatables ()
 Gets the maximum number of possible translatable texts. More...
 
bool HasExistingTranslation (int index)
 Checks if a given text index has already been assigned a unique translation ID. More...
 
void SetTranslationID (int index, int _lineID)
 Sets the translation ID of a given text index More...
 
string GetOwner ()
 Gets the name of the translatable text's owner. In the case of speech text, it is the name of the character. In the case of menu element text, it is the name of the menu element. More...
 
bool OwnerIsPlayer ()
 Checks if the translatable text's owner is a Player. This is necessary for speech lines, since multiple player prefabs can feasibly share the same line. More...
 
AC_TextType GetTranslationType (int index)
 Gets the translation type of a given text index. More...
 
bool CanTranslate (int index)
 Checks if a given text index can and should be translated. More...
 
- Public Member Functions inherited from AC.MenuElement
virtual void Copy (MenuElement _element)
 Copies the values of another MenuElement onto itself. More...
 
virtual void SetSpeech (Speech _speech)
 Assigns the element to a specific Speech line. More...
 
virtual void SetHotspot (Hotspot _hotspot, InvItem _invItem)
 Assigns the element to a specific Hotspot.
 
virtual void ClearSpeech ()
 
void UpdateID (int[] idArray)
 Updates the ID number to something unique. More...
 
void ShowGUIStart (Menu menu)
 
virtual void HideAllUISlots ()
 
virtual void DrawOutline (bool isSelected, AC.Menu _menu)
 Draws an outline around the element. More...
 
Vector2 [] GetSlotCentres (AC.Menu _menu)
 Gets the element's slot centres, as an array of Vector2s. This is used when keyboard-navigating menus More...
 
virtual void Shift (AC_ShiftInventory shiftType, int amount)
 Shifts which slots are on display, if the number of slots the element has exceeds the number of slots it can show at once. More...
 
virtual bool CanBeShifted (AC_ShiftInventory shiftType)
 Checks if the element's slots can be shifted in a particular direction. More...
 
Vector2 GetSize ()
 Gets the size of the whole element. More...
 
Vector2 GetSizeFromCorner ()
 Gets the Vector2 from the top-left corner of the parent Menu to the bottom-right corner of the element. More...
 
void SetSize (Vector2 _size)
 Sets the size of an individual slot. More...
 
int GetNumSlots ()
 Gets the number of display slots the element has. This is not the maximum number of slots that can be shown by shifting - it is the number of slots that are shown at any one time. More...
 
Rect GetSlotRectRelative (int _slot)
 Gets the boundary of a slot, as a proportion of the screen size. More...
 
int GetFontSize ()
 Gets the size of the font. More...
 
void SetPosition (Vector2 _position)
 Sets the element's position. More...
 
void SetRelativePosition (Vector2 _size)
 
void ResetDragOffset ()
 
void SetDragOffset (Vector2 pos, Rect dragRect)
 Offsets an OnGUI MenuElement's position when dragged by a MenuDrag element. More...
 
Vector2 GetDragStart ()
 Gets the drag offset. More...
 
void AutoSetVisibility ()
 
int GetOffset ()
 Gets the amount by which the slots have been offset, if the number that can be shown exceeds the number that can be display at once. More...
 
void SetOffset (int value)
 Sets the amount by which the slots have been offset, if the number that can be shown exceeds the number that can be display at once. More...
 
virtual void OnMenuTurnOn (Menu menu)
 Called whenever the Menu this is attached to is turned on. More...
 

Public Attributes

UnityEngine.UI.Button uiButton
 
UIPointerState uiPointerState = UIPointerState.PointerClick
 
string label = "Element"
 
string hotspotLabel = ""
 
int hotspotLabelID = -1
 
TextAnchor anchor
 
TextEffects textEffects
 
float outlineSize = 2f
 
AC_ButtonClickType buttonClickType
 
ActionListAsset actionList
 
int parameterID = -1
 
int parameterValue = 0
 
bool doFade
 
string switchMenuTitle
 
string inventoryBoxTitle
 
AC_ShiftInventory shiftInventory
 
int shiftAmount = 1
 
bool onlyShowWhenEffective
 
bool loopJournal = false
 
string inputAxis
 
SimulateInputType simulateInput = SimulateInputType.Button
 
float simulateValue = 1f
 
Texture2D clickTexture
 
bool allowContinuousClick = false
 
UISelectableHideStyle uiSelectableHideStyle = UISelectableHideStyle.DisableObject
 
- Public Attributes inherited from AC.MenuElement
int ID
 
bool isEditing = false
 
string title = "Element"
 
Vector2 slotSize
 
AC_SizeType sizeType
 
AC_PositionType2 positionType
 
float slotSpacing = 0f
 
int lineID = -1
 
string alternativeInputButton = ""
 
Font font
 
float fontScaleFactor = 60f
 
Color fontColor = Color.white
 
Color fontHighlightColor = Color.white
 
bool isClickable
 
ElementOrientation orientation = ElementOrientation.Vertical
 
int gridWidth = 3
 
Texture2D backgroundTexture
 
bool singleSlotBackgrounds = false
 
Texture2D highlightTexture
 
AudioClip hoverSound
 
AudioClip clickSound
 
bool changeCursor = false
 
int cursorID = 0
 
int linkedUiID
 

Protected Member Functions

override void ShowTextGUI (string apiPrefix)
 
override void ShowTextureGUI (string apiPrefix)
 
override void AutoSize ()
 
- Protected Member Functions inherited from AC.MenuElement
void CreateUIEvent (UnityEngine.UI.Button uiButton, AC.Menu _menu, UIPointerState uiPointerState=UIPointerState.PointerClick, int _slotIndex=0, bool liveState=true)
 
void ProcessClickUI (AC.Menu _menu, int _slot, MouseState _mouseState)
 
string TranslateLabel (string label, int languageNumber)
 
void EndGUI (string apiPrefix)
 
void ShowClipHelp ()
 
LinkedUiGUI< T > (T field, string label, MenuSource source, string tooltip="")
 
UISlot [] ResizeUISlots (UISlot[] uiSlots, int maxSlots)
 
void ChangeCursorGUI (Menu menu)
 
void LimitUISlotVisibility (UISlot[] uiSlots, int _numSlots, UIHideStyle uiHideStyle)
 
Rect ZoomRect (Rect rect, float zoom)
 
void LimitOffset (int maxValue)
 
void Shift (AC_ShiftInventory shiftType, int maxSlots, int arraySize, int amount)
 
void SetAbsoluteSize (Vector2 _size)
 
void AutoSize (GUIContent content)
 
LinkUIElement< T > (Canvas canvas)
 
void UpdateUISelectable< T > (T field, UISelectableHideStyle uiSelectableHideStyle)
 
void UpdateUIElement< T > (T field)
 
void ClearSpriteCache (UISlot[] uiSlots)
 
void SetUISlotsInteractableState (UISlot[] uiSlots, bool state)
 

Additional Inherited Members

- Protected Attributes inherited from AC.MenuElement
bool isVisible = true
 
int offset = 0
 
Rect relativeRect
 
Vector2 relativePosition
 
int numSlots
 
- Properties inherited from AC.MenuElement
bool IsVisible [get, set]
 
string IDString [get]
 

Detailed Description

A MenuElement that can be clicked on to perform a specific function.

Member Function Documentation

◆ CanTranslate()

bool AC.MenuButton.CanTranslate ( int  index)

Checks if a given text index can and should be translated.

Parameters
indexThe index of the translatable text
Returns
True if the text can and should be translated

Implements AC.ITranslatable.

◆ CheckConvertGlobalVariableToLocal()

override bool AC.MenuButton.CheckConvertGlobalVariableToLocal ( int  oldGlobalID,
int  newLocalID 
)
virtual

Checks if the Elements makesreferences from a given global variable to a given local variable

Parameters
oldGlobalIDThe ID number of the old global variable
newLocalIDThe ID number of the new local variable
Returns
True if the Element was affected

Reimplemented from AC.MenuElement.

◆ Declare()

override void AC.MenuButton.Declare ( )
virtual

Initialises the element when it is created within MenuManager.

Reimplemented from AC.MenuElement.

◆ Display()

override void AC.MenuButton.Display ( GUIStyle  _style,
int  _slot,
float  zoom,
bool  isActive 
)
virtual

Draws the element using OnGUI

Parameters
_styleThe GUIStyle to draw with
_slotIgnored by this subclass
zoomThe zoom factor
isActiveIf True, then the element will be drawn as though highlighted

Reimplemented from AC.MenuElement.

◆ DuplicateSelf()

override MenuElement AC.MenuButton.DuplicateSelf ( bool  fromEditor,
bool  ignoreUnityUI 
)
virtual

Creates and returns a new MenuElement that has the same values as itself.

Parameters
fromEditorIf True, the duplication was done within the Menu Manager and not as part of the gameplay initialisation.
ignoreUnityUIIf True, variables associated with Unity UI will not be transferred
Returns
A new MenuElement with the same values as itself

Reimplemented from AC.MenuElement.

◆ GetHotspotLabel()

string AC.MenuButton.GetHotspotLabel ( int  languageNumber)

Gets the text to place in the Hotspot label buffer (in PlayerMenus) when the mouse hovers over the element.

Parameters
languageNumberThe index of the language to display the text in
Returns
The text to place in the Hotspot label buffer when the mouse hovers over the element

◆ GetLabel()

override string AC.MenuButton.GetLabel ( int  slot,
int  languageNumber 
)
virtual

Gets the display text of the element

Parameters
slotIgnored by this subclass
languageNumberThe index number of the language number to get the text in
Returns
The display text of the element

Reimplemented from AC.MenuElement.

◆ GetNumTranslatables()

int AC.MenuButton.GetNumTranslatables ( )

Gets the maximum number of possible translatable texts.

Returns
The maximum number of possible translatable texts.

Implements AC.ITranslatable.

◆ GetObjectToSelect()

override GameObject AC.MenuButton.GetObjectToSelect ( int  slotIndex = 0)
virtual

Gets the linked Unity UI GameObject associated with this element.

Parameters
slotIndexThe slot index, if the element has multiple slots
Returns
The Unity UI GameObject associated with the element

Reimplemented from AC.MenuElement.

◆ GetOwner()

string AC.MenuButton.GetOwner ( )

Gets the name of the translatable text's owner. In the case of speech text, it is the name of the character. In the case of menu element text, it is the name of the menu element.

Returns
The name of the translatable text's owner.

Implements AC.ITranslatable.

◆ GetRectTransform()

override RectTransform AC.MenuButton.GetRectTransform ( int  _slot)
virtual

Gets the boundary of the element.

Parameters
_slotIgnored by this subclass
Returns
The boundary Rect of the element

Reimplemented from AC.MenuElement.

◆ GetTranslatableString()

string AC.MenuButton.GetTranslatableString ( int  index)

ITranslatable implementation

Implements AC.ITranslatable.

◆ GetTranslationID()

int AC.MenuButton.GetTranslationID ( int  index)

Gets the translation ID of a given text index.

Parameters
indexThe index of the translatable text
Returns
The translation ID of the text

Implements AC.ITranslatable.

◆ GetTranslationType()

AC_TextType AC.MenuButton.GetTranslationType ( int  index)

Gets the translation type of a given text index.

Parameters
indexThe index of the translatable text
Returns
The translation type of a given text index.

Implements AC.ITranslatable.

◆ GetVariableReferences()

override int AC.MenuButton.GetVariableReferences ( int  varID)
virtual

Gets the number of references the MenuElement makes to a global variable

Parameters
varIDThe global variable's ID number
Returns
The number of references the MenuElement makes to the variable

Reimplemented from AC.MenuElement.

◆ HasExistingTranslation()

bool AC.MenuButton.HasExistingTranslation ( int  index)

Checks if a given text index has already been assigned a unique translation ID.

Parameters
indexThe index of the translatable text
Returns
True if the text has been assigned a unique translation ID

Implements AC.ITranslatable.

◆ Initialise()

override void AC.MenuButton.Initialise ( AC.Menu  _menu)
virtual

Performs any initialisation that can only be done once the element has been instantiated at runtime.

Parameters
_menuThe Menu that the elemnt is a part of.

Reimplemented from AC.MenuElement.

◆ IsSelectedByEventSystem()

override bool AC.MenuButton.IsSelectedByEventSystem ( int  slotIndex)
virtual

Checks if the element is selected by Unity UI's EventSystem.

Parameters
slotIndexThe element's slot index, if it has multiple slots
Returns
True if the element is selected by Unity UI's EventSystem.

Reimplemented from AC.MenuElement.

◆ LoadUnityUI()

override void AC.MenuButton.LoadUnityUI ( AC.Menu  _menu,
Canvas  canvas 
)
virtual

Initialises the linked Unity UI GameObject.

Parameters
_menuThe element's parent Menu

Reimplemented from AC.MenuElement.

◆ OwnerIsPlayer()

bool AC.MenuButton.OwnerIsPlayer ( )

Checks if the translatable text's owner is a Player. This is necessary for speech lines, since multiple player prefabs can feasibly share the same line.

Returns
True if the translatable text's owner is a Player.

Implements AC.ITranslatable.

◆ PreDisplay()

override void AC.MenuButton.PreDisplay ( int  _slot,
int  languageNumber,
bool  isActive 
)
virtual

Performs all calculations necessary to display the element.

Parameters
_slotIgnored by this subclass
languageNumberThe index number of the language to display text in
isActiveIf True, then the element will be drawn as though highlighted

Reimplemented from AC.MenuElement.

◆ ProcessClick()

override void AC.MenuButton.ProcessClick ( AC.Menu  _menu,
int  _slot,
MouseState  _mouseState 
)
virtual

Performs what should happen when the element is clicked on.

Parameters
_menuThe element's parent Menu
_slotIgnored by this subclass
_mouseStateThe state of the mouse button

Reimplemented from AC.MenuElement.

◆ ProcessContinuousClick()

override void AC.MenuButton.ProcessContinuousClick ( AC.Menu  _menu,
MouseState  _mouseState 
)
virtual

Performs what should happen when the element is clicked on continuously.

Parameters
_menuThe element's parent Menu
_mouseStateThe state of the mouse button

Reimplemented from AC.MenuElement.

◆ RecalculateSize()

override void AC.MenuButton.RecalculateSize ( MenuSource  source)
virtual

Recalculates the element's size. This should be called whenever a Menu's shape is changed.

Parameters
sourceHow the parent Menu is displayed (AdventureCreator, UnityUiPrefab, UnityUiInScene)

Reimplemented from AC.MenuElement.

◆ SetTranslationID()

void AC.MenuButton.SetTranslationID ( int  index,
int  lineID 
)

Sets the translation ID of a given text index

Parameters
indexThe index of the translatable text
lineIDThe new translation ID to assign the translatable text

Implements AC.ITranslatable.

◆ SetUIInteractableState()

override void AC.MenuButton.SetUIInteractableState ( bool  state)
virtual

Sets the interactive state of any linked Unity UI gameobjects.

Parameters
stateIf True, linked UI gameobjects will be made interactive. If False, they will be made non-interactive

Reimplemented from AC.MenuElement.

◆ ShowClick()

void AC.MenuButton.ShowClick ( )

Shows the assigned clickTexture overlay, which fades out over time.

Member Data Documentation

◆ actionList

ActionListAsset AC.MenuButton.actionList

The ActionListAsset to run when clicked, if buttonClickType = AC_ButtonClickType.RunActionList

◆ allowContinuousClick

bool AC.MenuButton.allowContinuousClick = false

If True, then the button will respond to the mouse button being held down

◆ anchor

TextAnchor AC.MenuButton.anchor

The text alignment

◆ buttonClickType

AC_ButtonClickType AC.MenuButton.buttonClickType

The type of reaction that occurs when clicked (TurnOffMenu, Crossfade, OffsetElementSlot, RunActionList, CustomScript, OffsetJournal, SimulateInput)

◆ clickTexture

Texture2D AC.MenuButton.clickTexture

The texture to overlay when the button is clicked on

◆ doFade

bool AC.MenuButton.doFade

If True, and buttonClickType = AC_ButtonClickType.TurnOffMenu, then the Menu will transition as it turns off

◆ hotspotLabel

string AC.MenuButton.hotspotLabel = ""

The text that appears in the Hotspot label buffer when the mouse hovers over

◆ hotspotLabelID

int AC.MenuButton.hotspotLabelID = -1

The translation ID of the text that appears in the Hotspot label buffer when the mouse hovers over, as set in SpeechManager

◆ inputAxis

string AC.MenuButton.inputAxis

The name of the Input to simulate when clicked, if buttonClickType = AC_ButtonClickType.SimulateInput

◆ inventoryBoxTitle

string AC.MenuButton.inventoryBoxTitle

The name of the MenuElement with slots to shift, if buttonClickType = AC_ButtonClickType.OffsetElementSlot

◆ label

string AC.MenuButton.label = "Element"

The text that's displayed on-screen

◆ loopJournal

bool AC.MenuButton.loopJournal = false

If True, and buttonClickType = AC_ButtonClickType.OffsetJournal then shifting past the last journal page will open the first

◆ onlyShowWhenEffective

bool AC.MenuButton.onlyShowWhenEffective

If True, and buttonClickType = AC_ButtyonClickType.OffsetElementSlot, then the button will only be visible if the slots it affects can actually be shifted

◆ outlineSize

float AC.MenuButton.outlineSize = 2f

The outline thickness, if textEffects != TextEffects.None

◆ parameterID

int AC.MenuButton.parameterID = -1

The ID of the integer ActionParameter that can be set within actionList, if buttonClickType = AC_ButtonClickType.RunActionList

◆ parameterValue

int AC.MenuButton.parameterValue = 0

The value to set the integer ActionParameter within actionList, if buttonClickType = AC_ButtonClickType.RunActionList

◆ shiftAmount

int AC.MenuButton.shiftAmount = 1

The amount to shift slots by, if buttonClickType = AC_ButtonClickType.OffsetElementSlot

◆ shiftInventory

AC_ShiftInventory AC.MenuButton.shiftInventory

The direction to shift slots, if buttonClickType = AC_ButtonClickType.OffsetElementSlot (Left, Right)

◆ simulateInput

SimulateInputType AC.MenuButton.simulateInput = SimulateInputType.Button

The type of Input to simulate when clicked, if buttonClickType = AC_ButtonClickType.SimulateInput

◆ simulateValue

float AC.MenuButton.simulateValue = 1f

The value of the Input to simulate when clicked, if buttonClickType = AC_ButtonClickType.SimulateInput

◆ switchMenuTitle

string AC.MenuButton.switchMenuTitle

The name of the Menu to crossfade to, if buttonClickType = AC_ButtonClickType.Crossfade

◆ textEffects

TextEffects AC.MenuButton.textEffects

The special FX applied to the text (None, Outline, Shadow, OutlineAndShadow)

◆ uiButton

UnityEngine.UI.Button AC.MenuButton.uiButton

The Unity UI Button this is linked to (Unity UI Menus only)

◆ uiPointerState

UIPointerState AC.MenuButton.uiPointerState = UIPointerState.PointerClick

What pointer state registers as a 'click' for Unity UI Menus (PointerClick, PointerDown, PointerEnter)

◆ uiSelectableHideStyle

UISelectableHideStyle AC.MenuButton.uiSelectableHideStyle = UISelectableHideStyle.DisableObject

The method by which this element is hidden from view when made invisible (DisableObject, DisableInteractability)