Danil Iarosh 7f14981d8b added dialogue system
- Добавил систему диалогов
- Создал классы Sequencer.cs и SequenceAction.cs для воссоздания последовательности действий
- Добавил иеханику последовательности действий в Message.cs и MessageController.cs
2025-12-10 08:32:15 +03:00

53 lines
1.4 KiB
C#

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
});
}
}
}