| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- namespace SoftKitty.InventoryEngine
- {
- public class NumberPanel : MonoBehaviour
- {
- #region Variables
- private int MaxiumValue;
- private float ButtonHoldTime = 0F;
- private int Number = 0;
- public InputField InputNumber;
- public HoverEffect ButtonL;
- public HoverEffect ButtonR;
- float increment = 0.2F;
- [HideInInspector]
- public bool Enabled = true;
- #endregion
- #region Internal Methods
- private void Update()
- {
- if (!Enabled) return;
- if (int.Parse(InputNumber.text) != Number)
- {
- Number = Mathf.Clamp(int.Parse(InputNumber.text), 1, MaxiumValue);
- InputNumber.text = Number.ToString();
- }
- if (ButtonL.isHover)
- {
- if (InputProxy.GetMouseButtonDown(0))
- {
- AddNum(-1);
- ButtonHoldTime = 0F;
- }
- else if (InputProxy.GetMouseButton(0))
- {
- ButtonHoldTime += Time.deltaTime;
- increment = Mathf.MoveTowards(increment, 0.05F, Time.deltaTime * 0.1F);
- if (ButtonHoldTime > increment)
- {
- AddNum(-1);
- ButtonHoldTime = 0F;
- }
- }
- else
- {
- ButtonHoldTime = 0F;
- increment = 0.2F;
- }
- }
- if (ButtonR.isHover)
- {
- if (InputProxy.GetMouseButtonDown(0))
- {
- AddNum(1);
- ButtonHoldTime = 0F;
- }
- else if (InputProxy.GetMouseButton(0))
- {
- ButtonHoldTime += Time.deltaTime;
- increment = Mathf.MoveTowards(increment, 0.05F, Time.deltaTime * 0.1F);
- if (ButtonHoldTime > increment)
- {
- AddNum(1);
- ButtonHoldTime = 0F;
- }
- }
- else
- {
- ButtonHoldTime = 0F;
- increment = 0.2F;
- }
- }
- }
- #endregion
- public void Initialize(int _startValue, int _maxiumValue)//Initialize by default value and maximum value
- {
- Number = _startValue;
- InputNumber.text = Number.ToString();
- MaxiumValue = _maxiumValue;
- }
- public int GetNumber()//Get the number from user input.
- {
- return Number;
- }
- public void AddNum(int _add)//Add number by _add, it can be postive or negetive
- {
- Number = Mathf.Clamp(Number + _add, 1, MaxiumValue);
- InputNumber.text = Number.ToString();
- }
- public void SetNum(int _num)
- {
- Number = Mathf.Clamp(_num, 1, MaxiumValue);
- InputNumber.text = Number.ToString();
- }
-
- }
- }
|