您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
68 行
1.4 KiB
68 行
1.4 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.Localization.Components;
|
|
using UnityEngine.Events;
|
|
|
|
public class UIInventoryActionButton : MonoBehaviour
|
|
{
|
|
|
|
[SerializeField]
|
|
private LocalizeStringEvent _buttonActionText = default;
|
|
|
|
[SerializeField]
|
|
private Button _buttonAction = default;
|
|
|
|
[SerializeField]
|
|
UIButtonPrompt buttonPromptSetter = default;
|
|
|
|
[SerializeField]
|
|
InputReader _inputReader = default;
|
|
|
|
bool hasEvent = false;
|
|
|
|
public UnityAction Clicked;
|
|
|
|
public void FillInventoryButton(ItemTypeSO itemType, bool isInteractable = true)
|
|
{
|
|
_buttonAction.interactable = isInteractable;
|
|
_buttonActionText.StringReference = itemType.ActionName;
|
|
//bool isKeyboard = !(Input.GetJoystickNames() != null && Input.GetJoystickNames().Length > 0);
|
|
|
|
bool isKeyboard = true;
|
|
buttonPromptSetter.SetButtonPrompt(isKeyboard);
|
|
if (isInteractable)
|
|
{
|
|
|
|
if (_inputReader != null)
|
|
{
|
|
hasEvent = true;
|
|
_inputReader.inventoryActionButtonEvent += ClickActionButton;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (_inputReader != null)
|
|
if (hasEvent)
|
|
_inputReader.inventoryActionButtonEvent -= ClickActionButton;
|
|
|
|
}
|
|
|
|
}
|
|
public void ClickActionButton()
|
|
{
|
|
Clicked.Invoke();
|
|
|
|
|
|
}
|
|
private void OnDisable()
|
|
{
|
|
if (_inputReader != null)
|
|
if (hasEvent)
|
|
_inputReader.inventoryActionButtonEvent -= ClickActionButton;
|
|
|
|
}
|
|
|
|
|
|
}
|