// //-------------------------------------------------------- // // [Author]: 玩个游戏 // // [ Date ]: Tuesday, January 30, 2018 // //-------------------------------------------------------- // using UnityEngine; // using System.Collections; // using UnityEngine.UI; // using System; // using System.Collections.Generic; // public class SoundUtility // { // static DateTime lastHitAudioPlayTime = DateTime.Now; // static int hitAudioTimeInterval = 50;//毫秒 // static int hitAudioPoolMax = 2; // static int hitAudioCountPool = 2; // static Dictionary> jobHitAudio = new Dictionary>() { // { 1,new List(){101,102,103,104} }, // { 2,new List(){146,147,148,149} }, // { 3,new List(){101,102,103,104} }, // }; // public static void PlayHitAudio(AudioSource _audioSource) // { // if (_audioSource == null) // { // return; // } // if (hitAudioCountPool < hitAudioPoolMax) // { // hitAudioCountPool = Mathf.Clamp(hitAudioCountPool + (int)((DateTime.Now - lastHitAudioPlayTime).TotalMilliseconds / hitAudioTimeInterval), 0, hitAudioPoolMax); // } // if (hitAudioCountPool > 0) // { // var job = PlayerDatas.Instance.baseData.Job; // if (jobHitAudio.ContainsKey(job)) // { // var audios = jobHitAudio[job]; // var index = UnityEngine.Random.Range(0, audios.Count); // SoundPlayer.Instance.PlayAudio(_audioSource, audios[index]); // lastHitAudioPlayTime = DateTime.Now; // hitAudioCountPool--; // } // } // } // static Dictionary fightRoars = new Dictionary() { // { 1,new int[]{ 97,98,99 } }, // { 2,new int[]{ 142,143,144 } }, // }; // public static void PlayFightRoar(AudioSource _audioSource, int _job) // { // var ableIndex = UnityEngine.Random.Range(0, 3); // if (ableIndex != 1) // { // return; // } // int[] audioList = null; // if (fightRoars.ContainsKey(_job)) // { // audioList = fightRoars[_job]; // } // if (audioList == null) // { // return; // } // var randomIndex = UnityEngine.Random.Range(0, audioList.Length); // var audio = audioList[randomIndex]; // SoundPlayer.Instance.PlayAudio(_audioSource, audio); // } // static Dictionary deadAudios = new Dictionary() // { // { 1,100}, // { 2,145}, // { 3,100}, // }; // public static void PlayDeadAudio(AudioSource _audioSource, int _job) // { // SoundPlayer.Instance.PlayAudio(_audioSource, deadAudios[_job]); // } // static Dictionary stateFootAudios = new Dictionary() // { // { 1,new int[]{ 130, 131, 132,133} }, // { 2,new int[]{ 134, 135, 136, 137 } }, // { 3,new int[]{ 138, 139, 140, 141 } }, // }; // static Dictionary rideAudios = new Dictionary(); // static FootAudioType currentState = FootAudioType.Walk; // static int audioIndex = 0; // static Dictionary stateFootAudioLastPlayTimes = new Dictionary(); // const float overTime = 2f; // public static void PlayFootAudio(AudioSource _audioSource, FootAudioType _state, int _horseId = 0) // { // var stateInt = (int)_state; // if (!stateFootAudios.ContainsKey(stateInt)) // { // return; // } // if (currentState != _state) // { // audioIndex = 0; // currentState = _state; // } // if (stateFootAudioLastPlayTimes.ContainsKey(stateInt)) // { // var lastPlayTime = stateFootAudioLastPlayTimes[stateInt]; // if ((DateTime.Now - lastPlayTime).TotalSeconds > 2f) // { // audioIndex = 0; // } // } // else // { // audioIndex = 0; // } // int[] audios = null; // switch (stateInt) // { // case 1: // case 3: // audios = stateFootAudios[(int)_state]; // break; // // case 2: // // if (rideAudios.ContainsKey(_horseId)) // // { // // audios = rideAudios[_horseId]; // // } // // else // // { // // var config = HorseConfig.Get(_horseId); // // audios = new int[config.RideAudios.Length]; // // Array.Copy(config.RideAudios, audios, config.RideAudios.Length); // // rideAudios[_horseId] = audios; // // } // // break; // default: // break; // } // if (audioIndex < audios.Length) // { // var audio = audios[audioIndex]; // SoundPlayer.Instance.PlayAudio(_audioSource, audio); // stateFootAudioLastPlayTimes[stateInt] = DateTime.Now; // audioIndex++; // } // if (audioIndex >= audios.Length) // { // audioIndex = 0; // } // } // }