Advertisement
Guest User

Untitled

a guest
Feb 18th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.96 KB | None | 0 0
  1. ///***This code was written by TruLiFacE***\\\
  2. ///Вещается на модель радио
  3. using UnityEngine;
  4.  
  5. [RequireComponent(typeof(AudioSource))]
  6. public class Radio_Script : MonoBehaviour
  7. {
  8.     [Header("Игрок должен быть с тегом Player, или перетащить")]
  9.     [SerializeField]
  10.     GameObject player;
  11.  
  12.     [Header("Музыка для радио")]
  13.     [SerializeField]
  14.     AudioClip[] clips;//Массив с музыкой
  15.    
  16.     [Header("Дистанция на которой можно взаимодействовать")]
  17.     [Range(0, 1000)]
  18.     [SerializeField] float activDistance = 10;
  19.  
  20.  
  21.     byte clipsNow = 0;//Текущий клип
  22.     AudioSource source;//Сорс    
  23.     bool activRadio = false;//Включено или выключенно радио
  24.  
  25.     private void Start()
  26.     {
  27.         source = gameObject.GetComponent<AudioSource>();//Определение сорса
  28.  
  29.         if (player == null)
  30.             player = GameObject.FindGameObjectWithTag("Player");//Ищем игрока с тегом Player
  31.     }
  32.  
  33.     private void Update()
  34.     {
  35.         if (Input.GetKeyDown(KeyCode.E) && !activRadio && Vector3.Distance(transform.position, player.transform.position) <= activDistance)
  36.         {activRadio = true;}//Начинаем проигрывать
  37.  
  38.         else if (Input.GetKeyDown(KeyCode.P) && activRadio && Vector3.Distance(transform.position, player.transform.position) <= activDistance)
  39.         { activRadio = false;}//Останавливаем
  40.  
  41.         if (activRadio)
  42.             PlayRadio(activRadio);//Если проигрываем
  43.  
  44.         if (!activRadio)
  45.             StopRadio(activRadio);//Если остановили
  46.     }
  47.  
  48.     private void PlayRadio(bool isPlay)
  49.     {
  50.         if (isPlay)//Если радио включено
  51.         {
  52.             if (!source.isPlaying)//Если не играет музыка
  53.             {
  54.                 source.clip = clips[clipsNow];//Ставим в компонент сорс клипт который равен текущему клипу
  55.                 source.Play();//Проигрываем
  56.             }
  57.  
  58.             if (Input.GetKeyDown(KeyCode.T) && clipsNow - 1 < clips.Length)//Если нажали E и текущий клип меньше длины массива (количество песен)
  59.             {
  60.                 source.Stop();//Останавливаем воспроизведение
  61.                 clipsNow++;//Следующий клип
  62.             }
  63.  
  64.             if (clipsNow == clips.Length)//Если длина больше чем длина массива (количество песен)
  65.             {
  66.                 source.Stop();//Останавливаем
  67.                 clipsNow = 0;//И ставим нулевую песню
  68.             }
  69.         }
  70.     }
  71.  
  72.     private void StopRadio(bool isPlay)
  73.     {
  74.         if (!isPlay)
  75.         { source.Stop(); }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement