using UnityEngine;
using UnityEngine.UI;
using TMPro;
namespace RR.Common.Behaviour
{
public class Message : Sequencer
{
[SerializeField] private TextMeshProUGUI messageText;
[SerializeField] private RectTransform bubbleRectTransform;
[SerializeField] private Image speakerIconImage;
[SerializeField] private int maxWidth;
private string _text;
private Sprite _speakerIcon;
///
/// Инициализирует сообщение с текстом и иконкой говорящего.
///
/// Текст сообщения
/// Иконка (спрайт) говорящего персонажа
public void Initialize(string text, Sprite speakerIcon = null)
{
_text = text;
_speakerIcon = speakerIcon;
if (_text != null)
{
messageText.text = _text;
}
// Устанавливаем иконку говорящего, если она передана
if (speakerIconImage)
{
if (_speakerIcon)
{
speakerIconImage.sprite = _speakerIcon;
speakerIconImage.gameObject.SetActive(true);
}
else
{
speakerIconImage.gameObject.SetActive(false);
}
}
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
});
actions.Add(new DeleteGameObjectAction()
{
targetObject = gameObject
});
}
}
}