// //--------------------------------------------------------
|
// // [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<int, List<int>> jobHitAudio = new Dictionary<int, List<int>>() {
|
// { 1,new List<int>(){101,102,103,104} },
|
// { 2,new List<int>(){146,147,148,149} },
|
// { 3,new List<int>(){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<int, int[]> fightRoars = new Dictionary<int, int[]>() {
|
// { 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<int, int> deadAudios = new Dictionary<int, int>()
|
// {
|
// { 1,100},
|
// { 2,145},
|
// { 3,100},
|
// };
|
|
// public static void PlayDeadAudio(AudioSource _audioSource, int _job)
|
// {
|
// SoundPlayer.Instance.PlayAudio(_audioSource, deadAudios[_job]);
|
// }
|
|
// static Dictionary<int, int[]> stateFootAudios = new Dictionary<int, int[]>()
|
// {
|
// { 1,new int[]{ 130, 131, 132,133} },
|
// { 2,new int[]{ 134, 135, 136, 137 } },
|
// { 3,new int[]{ 138, 139, 140, 141 } },
|
// };
|
|
// static Dictionary<int, int[]> rideAudios = new Dictionary<int, int[]>();
|
|
// static FootAudioType currentState = FootAudioType.Walk;
|
// static int audioIndex = 0;
|
// static Dictionary<int, DateTime> stateFootAudioLastPlayTimes = new Dictionary<int, DateTime>();
|
|
// 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;
|
// }
|
// }
|
|
// }
|