diff options
| author | chai <215380520@qq.com> | 2024-05-19 16:05:01 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-19 16:05:01 +0800 |
| commit | c5f145786f4c6d2fe4bea831dfc16e52228920a5 (patch) | |
| tree | a6ead7ea8266c767d58ed0f816dcd7a1dd75bd65 /Thronefall_1_0/GameCode/Tooltip.cs | |
| parent | 48b64e573a1709dc923cb9162b55be0246b3ff63 (diff) | |
* move
Diffstat (limited to 'Thronefall_1_0/GameCode/Tooltip.cs')
| -rw-r--r-- | Thronefall_1_0/GameCode/Tooltip.cs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Thronefall_1_0/GameCode/Tooltip.cs b/Thronefall_1_0/GameCode/Tooltip.cs new file mode 100644 index 0000000..86091f7 --- /dev/null +++ b/Thronefall_1_0/GameCode/Tooltip.cs @@ -0,0 +1,63 @@ +using MoreMountains.Feedbacks; +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +public class Tooltip : MonoBehaviour +{ + [SerializeField] + private TextMeshProUGUI content; + + [SerializeField] + private RectTransform targetRect; + + [SerializeField] + private MMF_Player onOpen; + + [SerializeField] + private MMF_Player onClose; + + [SerializeField] + private MMF_Player onUpdate; + + public string currentText => content.text; + + private void Awake() + { + base.transform.localScale = Vector3.zero; + content.text = ""; + } + + public void SetTooltip(string tooltipTxt) + { + if (tooltipTxt == content.text) + { + return; + } + onOpen.StopFeedbacks(); + onClose.StopFeedbacks(); + onUpdate.StopFeedbacks(); + content.text = tooltipTxt; + if (tooltipTxt == "") + { + onClose.PlayFeedbacks(); + return; + } + if (content.text == "") + { + onOpen.PlayFeedbacks(); + } + else + { + onUpdate.PlayFeedbacks(); + } + UpdateSize(); + } + + private void UpdateSize() + { + RectTransform component = GetComponent<RectTransform>(); + LayoutRebuilder.ForceRebuildLayoutImmediate(targetRect); + component.sizeDelta = targetRect.sizeDelta; + } +} |
