From b9751b2f076ee050fe5b685e91ae4fc4469b1015 Mon Sep 17 00:00:00 2001 From: yyl <yyl> Date: 星期一, 09 六月 2025 09:01:02 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts --- Main/System/Sound/SoundUtility.cs | 295 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 146 insertions(+), 149 deletions(-) diff --git a/Main/System/Sound/SoundUtility.cs b/Main/System/Sound/SoundUtility.cs index fa93058..5b75600 100644 --- a/Main/System/Sound/SoundUtility.cs +++ b/Main/System/Sound/SoundUtility.cs @@ -9,176 +9,173 @@ using System.Collections.Generic; -namespace vnxbqy.UI + +public class SoundUtility { + static DateTime lastHitAudioPlayTime = DateTime.Now; + static int hitAudioTimeInterval = 50;//姣 - public class SoundUtility + 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) { - static DateTime lastHitAudioPlayTime = DateTime.Now; - static int hitAudioTimeInterval = 50;//姣 + if (_audioSource == null) + { + return; + } - static int hitAudioPoolMax = 2; - static int hitAudioCountPool = 2; + if (hitAudioCountPool < hitAudioPoolMax) + { + hitAudioCountPool = Mathf.Clamp(hitAudioCountPool + (int)((DateTime.Now - lastHitAudioPlayTime).TotalMilliseconds / hitAudioTimeInterval), 0, hitAudioPoolMax); + } - 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} }, + 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 PlayHitAudio(AudioSource _audioSource) + public static void PlayFightRoar(AudioSource _audioSource, int _job) + { + var ableIndex = UnityEngine.Random.Range(0, 3); + if (ableIndex != 1) { - 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--; - } - } + return; } - 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) + int[] audioList = null; + if (fightRoars.ContainsKey(_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); - + audioList = fightRoars[_job]; } - static Dictionary<int, int> deadAudios = new Dictionary<int, int>() + if (audioList == null) { - { 1,100}, - { 2,145}, - { 3,100}, - }; - - public static void PlayDeadAudio(AudioSource _audioSource, int _job) - { - SoundPlayer.Instance.PlayAudio(_audioSource, deadAudios[_job]); + return; } - 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 } }, - }; + var randomIndex = UnityEngine.Random.Range(0, audioList.Length); + var audio = audioList[randomIndex]; - 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; - } - } + 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; + } + } + } + -- Gitblit v1.8.0