您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
50 行
1.3 KiB
50 行
1.3 KiB
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
/// <summary>
|
|
/// An extension of Unity's base Button class, to support input from both mouse and keyboard/joypad
|
|
/// </summary>
|
|
[AddComponentMenu("UOP1/UI/MultiInputButton")]
|
|
public class MultiInputButton : Button
|
|
{
|
|
private MenuSelectionHandler _menuSelectionHandler;
|
|
public bool IsSelected;
|
|
private new void Awake()
|
|
{
|
|
_menuSelectionHandler = transform.root.gameObject.GetComponentInChildren<MenuSelectionHandler>();
|
|
}
|
|
|
|
public override void OnPointerEnter(PointerEventData eventData)
|
|
{
|
|
_menuSelectionHandler.HandleMouseEnter(gameObject);
|
|
}
|
|
|
|
public override void OnPointerExit(PointerEventData eventData)
|
|
{
|
|
_menuSelectionHandler.HandleMouseExit(gameObject);
|
|
}
|
|
|
|
public override void OnSelect(BaseEventData eventData)
|
|
{
|
|
IsSelected = true;
|
|
_menuSelectionHandler.UpdateSelection(gameObject);
|
|
base.OnSelect(eventData);
|
|
}
|
|
|
|
public void UpdateSelected()
|
|
{
|
|
if (_menuSelectionHandler == null)
|
|
_menuSelectionHandler = transform.root.gameObject.GetComponentInChildren<MenuSelectionHandler>();
|
|
|
|
_menuSelectionHandler.UpdateSelection(gameObject);
|
|
|
|
}
|
|
|
|
public override void OnSubmit(BaseEventData eventData)
|
|
{
|
|
if (_menuSelectionHandler.AllowsSubmit())
|
|
base.OnSubmit(eventData);
|
|
}
|
|
|
|
}
|