using TMPro; using UnityEngine; public class SineText : MonoBehaviour { [SerializeField] private TMP_Text guide; [SerializeField] private float amplitude = 5f; // насколько увеличивается/уменьшается размер [SerializeField] private float speed = 2f; // скорость пульсации private float baseSize; private int playerId = 1; private bool playerReady; private bool enemyReady; private void OnEnable() { GameManager.OnReady += ChangText; } private void OnDisable() { GameManager.OnReady -= ChangText; guide.text = "Расставь корабли !"; guide.color = new Color(0, 194, 255); } void Start() { if (guide != null) baseSize = guide.fontSize; // сохраняем исходный размер шрифта var player = GetComponentInParent(); if (player != null) playerId = player.PlayerId; } public void ChangText(int playerId, bool ready, GameMode gameMode) { if (gameMode == GameMode.PlayerVsBot) { if (this.playerId == playerId) { playerReady = ready; if (playerReady) { guide.text = "Жми в БОЙ!!!"; guide.color = new Color32(52, 255, 7, 255); } else { guide.text = "Расставь корабли !"; guide.color = new Color(0, 194, 255); } } } else { if(this.playerId == playerId) { playerReady = ready; } else { enemyReady = ready; } if (playerReady && enemyReady) { guide.text = "Жми в БОЙ!!!"; guide.color = Color.red; } else if (playerReady && !enemyReady) { guide.text = "Ждем противника..."; guide.color = Color.green; } else { guide.text = "Расставь корабли !"; guide.color = new Color(0, 194, 255); } } } void Update() { if (guide == null) return; // создаём синусоидальную пульсацию float newSize = baseSize + Mathf.Sin(Time.time * speed) * amplitude; guide.fontSize = newSize; } }