static AudioManager() { _gameObject = new GameObject(); _gameObject.name = "AudioManager"; Object.DontDestroyOnLoad(_gameObject); Mixer = Resources.Load <AudioMixer>("Master"); MasterMixerGroup = Mixer.FindMatchingGroups("Master").First(); MusicMixerGroup = Mixer.FindMatchingGroups("Music").First(); EffectsMixerGroup = Mixer.FindMatchingGroups("Effects").First(); AmbienceMixerGroup = Mixer.FindMatchingGroups("Ambiance").First(); InterfaceMixerGroup = Mixer.FindMatchingGroups("Interface").First(); DialogueMixerGroup = Mixer.FindMatchingGroups("Dialogue").First(); AudioMissing = Resources.Load <AudioClip>("audiomissing"); AudioDatabase = Resources.Load <AudioDatabase>("AudioDatabase"); _currentMusicSource = _gameObject.AddComponent <AudioSource>(); _currentMusicSource.loop = true; _currentMusicSource.outputAudioMixerGroup = MusicMixerGroup; _nextMusicSource = _gameObject.AddComponent <AudioSource>(); _nextMusicSource.loop = true; _nextMusicSource.outputAudioMixerGroup = MusicMixerGroup; _crossfader = _gameObject.AddComponent <CrossFader>(); _crossfader.StartCoroutine(CrossfadeMusic()); }
void HandlePlayerLevelUp(int newLevel) { Debug.Log(string.Format("Player is now level: {0}", newLevel)); stats.PersistentPlayerData.PerkPoints++; // Play level up sound GetComponent <AudioSource>().PlayOneShot(AudioDatabase.GetClip("Pickup")); }
private static void LoadResources() { Mixer = Resources.Load <AudioMixer>("Master"); MasterMixerGroup = Mixer.FindMatchingGroups("Master").First(); MusicMixerGroup = Mixer.FindMatchingGroups("Music").First(); EffectsMixerGroup = Mixer.FindMatchingGroups("Effects").First(); AmbienceMixerGroup = Mixer.FindMatchingGroups("Ambiance").First(); InterfaceMixerGroup = Mixer.FindMatchingGroups("Interface").First(); DialogueMixerGroup = Mixer.FindMatchingGroups("Dialogue").First(); AudioMissing = Resources.Load <AudioClip>("audiomissing"); AudioDatabase = Resources.Load <AudioDatabase>("AudioDatabase"); }
private static void Apply() { string[] guids = AssetDatabase.FindAssets("t:AudioClip", new[] { "Assets/Audio/Resources" }); AudioDatabase db = null; db = AssetDatabase.LoadAssetAtPath <AudioDatabase>($"Assets/Audio/Resources/AudioDatabase.asset"); if (db == null) { db = ScriptableObject.CreateInstance <AudioDatabase>(); AssetDatabase.CreateAsset(db, $"Assets/Audio/Resources/AudioDatabase.asset"); } db.AudioClips.Clear(); db.ClipTypes.Clear(); var sb = new StringBuilder(); sb.AppendLine("// Auto Generated File, Don't Modify"); sb.AppendLine("public static class AudioClips"); sb.AppendLine("{"); int count = 0; foreach (string g in guids) { var path = AssetDatabase.GUIDToAssetPath(g); var name = Path.GetFileNameWithoutExtension(path); sb.AppendLine($"\tpublic static string {name.Replace('-','_').Replace(' ','_')}=\"{name}\";"); var directory = Path.GetDirectoryName(path); directory = directory.Substring(directory.LastIndexOf('\\') + 1); if (directory == "Resources") { directory = "Default"; } db.AudioClips.Add(name, new AudioClipData(AssetDatabase.LoadAssetAtPath <AudioClip>(path), (SoundType)System.Enum.Parse(typeof(SoundType), directory))); count++; } //sb.Remove(sb.Length - 3, 1); sb.AppendLine("}"); var dataPath = Application.dataPath.Replace('/', '\\'); dataPath = Path.Combine(dataPath, @"Scripts\Utilities\AudioClips.cs"); File.WriteAllText(dataPath, sb.ToString()); AssetDatabase.SaveAssets(); AssetDatabase.ImportAsset(@"Assets/Scripts/Utilities/AudioClips.cs"); AssetDatabase.Refresh(); }
// Use this for initialization private void Awake() { audioDatabase = GetComponent <AudioDatabase>(); backGroundAudioSource = GetComponents <AudioSource>()[0]; effectAudioSource = GetComponents <AudioSource>()[1]; if (Instance == null) //Static 변수를 지정하고 이것이 없을경우 - PlayManage 스크립트를 저장하고 이것이 전 범위적인 싱글톤 오브젝트가 된다. { DontDestroyOnLoad(this.gameObject); Instance = this; } else if (Instance != this) { Destroy(this.gameObject); //싱글톤 오브젝트가 있을경우 다른 오브젝트를 제거. } }
void UpdateWalkSound() { if ((currentWalkSoundDelay += Time.deltaTime) >= walkSoundRate) { currentWalkSoundDelay = 0f; feetAudioSource.PlayOneShot(AudioDatabase.GetClip(walkAudioClipsId[currentWalkAudioIndex])); if (currentWalkAudioIndex < walkAudioClipsId.Length - 1) { currentWalkAudioIndex++; } else { currentWalkAudioIndex = 0; } } }
void Awake() { if (self == null) { self = this; DontDestroyOnLoad(self); audioDB = self.audioDatabase; } else { Destroy(this); } AssignPlayerInputAccordingToPlatform(); player1.Enemy = player2; player2.Enemy = player1; player1.GameOver = GameOver; player2.GameOver = GameOver; }
/// <summary> /// Plays an audio clip in the music audio source. /// </summary> /// <param name="clipIndex">The index of the clip to play</param> /// <param name="addState">DontReplace: If a clip is already playing, don't do anything.<br></br>Replace: Always play the clip.<br></br>Queue: If a clip is already playing, play it once the clip has stopped playing.</param> /// <param name="maxVolume">The maximum volume the clip will ever reach</param> /// <param name="loop">Whether the clip should be looped</param> /// <param name="fadeInSpeed">Speed at which to fade-in. 1 = instantaneous</param> /// <param name="fadeOutSpeed">Speed at which to fade-out the previous clip (if AddState.Queue). 1 = instantaneous</param> public void PlayClip(string audioClipId, AddState addState, float maxVolume = 1f, bool loop = false, float fadeInSpeed = 1f, float fadeOutSpeed = 1f) { if (!musicAudioSource.isPlaying || addState == AddState.Replace) { musicAudioSource.clip = AudioDatabase.GetClip(audioClipId); StartFadeIn(fadeInSpeed, maxVolume); musicAudioSource.loop = loop; } else if (addState == AddState.Queue) { if (currentQueueWait != null) { StopCoroutine(currentQueueWait); } StartFadeOut(fadeOutSpeed); currentQueueWait = StartCoroutine(WaitForStop(audioClipId, maxVolume, loop, fadeInSpeed)); } }
public void Awake() { foreach (var item in soundClips) { if (!string.IsNullOrEmpty(item.id) || item.audioClip != null) { AudioDatabase.AddClip(item); } else { Debug.LogWarning("Invalid Audio Clip added to AudioDatabaseInitialiser"); } } if (destroyAfterInjection) { Destroy(this); } }
private void OnEnable() { m_Source = (AudioDatabase)target; m_Target = new SerializedObject(m_Source); m_DatasProp = m_Target.FindProperty("m_Datas"); }
private void Awake() { instance = this; Initialize(); }
void ControlManager() { mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); if (Input.GetAxis("Fire1") == 1) { //print("Ping"); if (currentWeapon) { // Attempt to fire the weapon, if the weapon does fire, increase bullets shot. if (currentWeapon.PrimaryFire()) { stats.BulletsShot++; } OnWeaponChanged?.Invoke(currentWeapon); } } if (Input.GetAxis("Fire2") == 1) { if (currentWeapon) { currentWeapon.SecondaryFire(); OnWeaponChanged?.Invoke(currentWeapon); } } if (Input.GetButtonDown("Reload")) { if (currentWeapon) { currentWeapon.ReloadAll(); OnWeaponChanged?.Invoke(currentWeapon); } } if (Input.GetButtonDown("Ability1")) { try { if (!AbilityController) { return; } AbilityController.UseAbility(0); } catch (Exception e) { Debug.LogWarning("Ability 1 not found"); } } if (Input.GetButtonDown("Ability2")) { try { AbilityController.UseAbility(1); } catch (Exception e) { Debug.LogWarning("Ability 2 not found"); } } if (Input.GetButton("CharJump")) { if (jumpController.Jump(out var newEnemy)) { controlledObject = newEnemy; GetComponent <AudioSource>().PlayOneShot(AudioDatabase.GetClip("Body Swap")); HandleNewControlledObject(); } } }
public void Init(string audioClipId, float lifeTime, float volume) { GetComponent <AudioSource>().PlayOneShot(AudioDatabase.GetClip(audioClipId), volume); StartCoroutine(Destroy(lifeTime)); }
void Start() { instance = this; }