52 lines
1.2 KiB
C#
52 lines
1.2 KiB
C#
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class WeaponDataHandlerCanvasMask : WeaponDataHandlerBase
|
|
{
|
|
[SerializeField]
|
|
protected RectMask2D mask;
|
|
[SerializeField]
|
|
protected Image image;
|
|
|
|
protected float maxVal = 1, curVal = 1;
|
|
//protected bool updated = true;
|
|
|
|
//protected virtual void OnEnable()
|
|
//{
|
|
// LayoutRebuilder.MarkLayoutForRebuild(mask.rectTransform);
|
|
//}
|
|
|
|
public override void SetColor(Color color)
|
|
{
|
|
image.color = color;
|
|
}
|
|
|
|
public override void SetText(string text)
|
|
{
|
|
if (text.StartsWith("#"))
|
|
{
|
|
maxVal = Mathf.Max(float.Parse(text.Substring(1)), 1);
|
|
}
|
|
else
|
|
{
|
|
curVal = Mathf.Max(float.Parse(text), 0);
|
|
}
|
|
if (curVal > maxVal)
|
|
maxVal = curVal;
|
|
float perc = curVal / maxVal;
|
|
Vector4 padding = mask.padding;
|
|
padding.w = mask.rectTransform.rect.height * Mathf.Clamp01(1 - perc);
|
|
mask.padding = padding;
|
|
//updated = true;
|
|
}
|
|
|
|
//protected virtual void LateUpdate()
|
|
//{
|
|
// if (updated)
|
|
// {
|
|
// LayoutRebuilder.ForceRebuildLayoutImmediate(mask.rectTransform);
|
|
// updated = false;
|
|
// }
|
|
//}
|
|
}
|