using System.Collections; using UnityEngine; [RequireComponent(typeof(AudioSource))] public class TVController : MonoBehaviour { [Header("Компоненты")] [Tooltip("Renderer объекта, представляющего экран телевизора.")] [SerializeField] private Renderer _tvScreenRenderer; [SerializeField] private AudioSource _audioSource; [Header("Настройки")] [Tooltip("Звук, который проигрывается при включенном телевизоре.")] [SerializeField] private AudioClip _tvSound; [Tooltip("Через сколько секунд после включения телевизор выключится.")] [SerializeField] private float _onDuration = 5.0f; private void Awake() { // Убедимся, что экран и звук выключены на старте if (_tvScreenRenderer != null) { _tvScreenRenderer.enabled = false; } _audioSource = GetComponent(); } // Публичный метод для включения телевизора public void TurnOnAndOffAfterDelay() { StartCoroutine(TVActivationCoroutine()); } private IEnumerator TVActivationCoroutine() { // Фаза включения Debug.Log("Телевизор включается..."); _tvScreenRenderer.enabled = true; _audioSource.PlayOneShot(_tvSound); // Ожидание yield return new WaitForSeconds(_onDuration); // Фаза выключения Debug.Log("Телевизор выключается..."); _tvScreenRenderer.enabled = false; // Звук остановится сам, так как он OneShot. Если звук зациклен, нужно использовать _audioSource.Stop(). } }