using System; using System.Collections; using UnityEngine; namespace RR.Common.Behaviour { /// /// Действие появления сообщения (масштабирование от startScale до endScale) /// [Serializable] public class MessageAppearAction : SequenceAction { [SerializeField] public float startScale = 0f; [SerializeField] public float endScale = 1f; [SerializeField] public float transitionSpeed = 1f; public override IEnumerator Execute(Sequencer context, GameObject target) { if (!target) yield break; target.transform.localScale = new Vector3(startScale, startScale, startScale); while (target.transform.localScale.x < endScale) { target.transform.localScale = Vector3.MoveTowards( target.transform.localScale, new Vector3(endScale, endScale, endScale), Time.deltaTime * transitionSpeed ); yield return null; } } } }