Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///***This code was written by TruLiFacE***\\\
- ///Вещается на модель радио
- using UnityEngine;
- [RequireComponent(typeof(AudioSource))]
- public class Radio_Script : MonoBehaviour
- {
- [Header("Игрок должен быть с тегом Player, или перетащить")]
- [SerializeField]
- GameObject player;
- [Header("Музыка для радио")]
- [SerializeField]
- AudioClip[] clips;//Массив с музыкой
- [Header("Дистанция на которой можно взаимодействовать")]
- [Range(0, 1000)]
- [SerializeField] float activDistance = 10;
- byte clipsNow = 0;//Текущий клип
- AudioSource source;//Сорс
- bool activRadio = false;//Включено или выключенно радио
- private void Start()
- {
- source = gameObject.GetComponent<AudioSource>();//Определение сорса
- if (player == null)
- player = GameObject.FindGameObjectWithTag("Player");//Ищем игрока с тегом Player
- }
- private void Update()
- {
- if (Input.GetKeyDown(KeyCode.E) && !activRadio && Vector3.Distance(transform.position, player.transform.position) <= activDistance)
- {activRadio = true;}//Начинаем проигрывать
- else if (Input.GetKeyDown(KeyCode.P) && activRadio && Vector3.Distance(transform.position, player.transform.position) <= activDistance)
- { activRadio = false;}//Останавливаем
- if (activRadio)
- PlayRadio(activRadio);//Если проигрываем
- if (!activRadio)
- StopRadio(activRadio);//Если остановили
- }
- private void PlayRadio(bool isPlay)
- {
- if (isPlay)//Если радио включено
- {
- if (!source.isPlaying)//Если не играет музыка
- {
- source.clip = clips[clipsNow];//Ставим в компонент сорс клипт который равен текущему клипу
- source.Play();//Проигрываем
- }
- if (Input.GetKeyDown(KeyCode.T) && clipsNow - 1 < clips.Length)//Если нажали E и текущий клип меньше длины массива (количество песен)
- {
- source.Stop();//Останавливаем воспроизведение
- clipsNow++;//Следующий клип
- }
- if (clipsNow == clips.Length)//Если длина больше чем длина массива (количество песен)
- {
- source.Stop();//Останавливаем
- clipsNow = 0;//И ставим нулевую песню
- }
- }
- }
- private void StopRadio(bool isPlay)
- {
- if (!isPlay)
- { source.Stop(); }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement