Unity3D рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдЖрдЬ рдореИрдВ рдХрдЪрд░реЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдФрд░ рдХреЛрдб рдХреЛ рдЬрдЯрд┐рд▓ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдЬреЛ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╣рдо рдзреНрд╡рдирд┐ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреВрд░реЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрдВ рдЧреЗрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕рдВрдЧреАрдд рдФрд░ рдзреНрд╡рдирд┐рдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдПрдХ рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ, рдЬреЛ рдзреНрд╡рдирд┐ рдФрд░ рд╕рдВрдЧреАрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдЧрд╛, рд╣рдо рдПрдХ рд╕рд░рд▓ рдХреНрд░рдорд┐рдХ рд╢реНрд░реЗрдгреА рдмрдирд╛рдПрдВрдЧреЗред рдпрд╣ JSON рдореЗрдВ рдмрдЪрдд рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

using System.Collections; using System.Collections.Generic; using UnityEngine; //============================================= // AudioSettingsModel // @usage model for audio settings // // Developed by CodeBits Interactive // https://cdbits.net/ //============================================= [System.Serializable] public class AudioSettingsModel { public bool music = true; // ,    public bool sounds = true; // ,    } 

рдЕрдм рдЖрдк рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдкрд╣рд▓реЗ рджреГрд╢реНрдп рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдкреНрд░рдмрдВрдзрдХ рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд╕реНрддреБ рд╣реЛрдЧреА рдФрд░ рдЗрд╕реЗ рджреГрд╢реНрдп рд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛ред

 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; //============================================= // Audio Manager // @usage works with audio settings // // Developed by CodeBits Interactive // https://cdbits.net/ //============================================= [AddComponentMenu("Game Managers/Audio Manager")] public class AudioManager : MonoBehaviour{ //   public static AudioManager instance = null; //   public static AudioSettingsModel settings = null; //    private static string _settings_path = ""; //      //   void Awake(){ //      _settings_path = Application.persistentDataPath + "/audioSettings.gdf"; // ,      if (instance == null){ //    instance = this; //      } //  ,    , //         //  DontDestroyOnLoad(gameObject); //     InitializeSettings(); } //   private void InitializeSettings(){ //      if (settings == null) settings = new AudioSettingsModel(); //    if (File.Exists(_settings_path)){ //      loadSettings(); //     } } //    public void loadSettings(){ string _data = File.ReadAllText(_settings_path); //      settings = JsonUtility.FromJson<AudioSettingsModel>(_data); //      } //    public void saveSettings(){ string _json_data = JsonUtility.ToJson(settings); //      File.WriteAllText(_settings_path, _json_data); //     } //     ,    //        public delegate void AudioSettingsChanged(); //    public event AudioSettingsChanged OnAudioSettingsChanged; //      // /  public void toggleSounds(bool enabled){ settings.sounds = enabled; //       saveSettings(_settings_path, settings); //   if (OnAudioSettingsChanged != null) OnAudioSettingsChanged(); //    } // /  public void toggleMusic(bool enabled){ settings.music = enabled; //       saveSettings(_settings_path, settings); //   if (OnAudioSettingsChanged != null) OnAudioSettingsChanged(); //    } } 

рдЕрдм рдЬрдм рдкреНрд░рдмрдВрдзрдХ рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рджреГрд╢реНрдп рдкрд░ рдПрдХ рдЦрд╛рд▓реА рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "_AUDIO_MANAGER" , рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧ рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рдЖрдк рдЗрд╕реЗ рдмрд╕ рдШрдЯрдХ рдореЗрдиреВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдФрд░ "рдЧреЗрдо рдореИрдиреЗрдЬрд░реНрд╕" => "рдСрдбрд┐рдпреЛ рдореИрдиреЗрдЬрд░" рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдШрдЯрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо AudioSource рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдбреЙрдХ рдХрд░реЗрдВрдЧреЗред

 using System.Collections; using System.Collections.Generic; using UnityEngine; //============================================= // Audio Muter // @usage on/off audio sources on objects // // Developed by CodeBits Interactive // https://cdbits.net/ //============================================= [AddComponentMenu("Audio/Audio Muter Component")] public class AudioMuter : MonoBehaviour { //    public bool is_music = false; //      ,   AudioSource   . //   private AudioSource _as; // AudioSource private float _base_volume = 1F; //   AudioSource //   void Start(){ //   AudioSource     _as = this.gameObject.GetComponent<AudioSource>(); //   _base_volume = _as.volume; //    //    ,     _audioSettingsChanged, //   /   AudioManager.instance.OnAudioSettingsChanged += _audioSettingsChanged; //  //          / _audioSettingsChanged(); } //    void OnDestroy(){ AudioManager.instance.OnAudioSettingsChanged -= _audioSettingsChanged; //   } //     /  AudioSource private void _audioSettingsChanged(){ if (is_music) _as.volume = (AudioManager.settings.music) ? _base_volume : 0F; if (!is_music) _as.volume = (AudioManager.settings.sounds) ? _base_volume : 0F; } } 

рдЗрд╕ рддрд░рд╣ рд╣рдо рдЦреЗрд▓ рдореЗрдВ рдЖрд╡рд╛рдЬрд╝ / рд╕рдВрдЧреАрдд рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХрддрд╛ 3 рдбреА рдореЗрдВ рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдордиреЗ рдЕрднреА рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд╣ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдЬрд┐рд╕рд╕реЗ рд╢реНрд░реЛрддрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:

 public delegate void AudioSettingsChanged(); public event AudioSettingsChanged OnAudioSettingsChanged; 

рдЖрдк рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд рд╢реНрд░реЛрддрд╛ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реАрдХреЛрдВ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЗрди рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдХреА рдорджрдж рд╕реЗ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдордиреЗ рдПрдХ рд╢реНрд░реЛрддрд╛ рдмрдирд╛рдпрд╛, рдЖрдк рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╕рдордп)ред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░реЗ рдЫреЛрдЯреЗ рдЕрдиреБрднрд╡ рдХреЛ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдВрдЧреЗ рдФрд░ рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрдкрдХреЗ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдореЗрдВ рднреА рдЦреБрд╢реА рд╣реЛрдЧреА (рдЕрдЧрд░ рдХреЛрдИ рдХреБрдЫ рд╕рдордЭ рдирд╣реАрдВ рд░рд╣рд╛ рд╣реИ)ред

Source: https://habr.com/ru/post/hi414155/


All Articles