using UnityEngine; using TMPro; namespace RR.Common.Behaviour { public class Message : Sequencer { [SerializeField] private TextMeshProUGUI messageText; [SerializeField] private RectTransform bubbleRectTransform; [SerializeField] private int maxWidth; private string _text; public void Initialize(string text) { _text = text; if (_text != null) { float width = Mathf.Ceil(_text.Length * 1.2f / 5f); if (maxWidth > 0 && width > maxWidth) { width = maxWidth; messageText.textWrappingMode = TextWrappingModes.Normal; } else { messageText.textWrappingMode = TextWrappingModes.NoWrap; } bubbleRectTransform.sizeDelta = new Vector2(width, bubbleRectTransform.sizeDelta.y); messageText.text = _text; } if (actions.Count == 0) { SetDefaultActions(); } InitializeSequence(); } private void SetDefaultActions() { actions.Add(new MessageAppearAction() { startScale = 0f, endScale = 1f, transitionSpeed = 3f }); actions.Add(new WaitAction() { duration = 2f }); actions.Add(new MessageDisappearAction() { startScale = 1f, endScale = 0f, transitionSpeed = 3f }); } } }