Afterparty/Assets/Scripts/Events/Living room/TVController.cs
2026-01-11 17:04:23 +03:00

50 lines
1.9 KiB
C#

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<AudioSource>();
}
// Публичный метод для включения телевизора
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().
}
}