//интервалы между анимациями IEnumerator StepByAnimations() { //если не плывет, то пропускаем N сек перед циклом шагов if (!State.isSwim) { yield return(new WaitForSeconds(0.2f)); } while (State.isMove) { Sounds.Player sound = Util.Audio.GetTileWalk(State, world.map.terrain.grasses, world.players.tiles[Data.Coord.y, Data.Coord.x]); Sound.Play(sound); float time = Config.TimeWalk * Config.AnimationSpeedWorldObjects; //если короткий звук то делится на 2 части if (Sounds.isShortSoundStep(sound)) { time /= 2; } yield return(new WaitForSeconds(time)); //если короткий звук то повторяется 2 раза if (Sounds.isShortSoundStep(sound)) { Sound.Play(sound); yield return(new WaitForSeconds(time)); } } yield break; }
//аудио клип хотьбы в определенной точки public static Sounds.Player GetTileWalk(MuPlayer.PlayerState state, MuMap.Grass[] grasses, MuMap.MapDataGround.Tile tile) { Sounds.Player sound = Sounds.Player.WalkSoil; byte mainTile = tile.alpha > 0.5f ? tile.id1 : tile.id2; if (state.isSwim) { sound = Sounds.Player.Swim; } else if (Util.Map.isGrass(grasses, mainTile)) { if (state.map == Util.Map.Location.Devias) { sound = Sounds.Player.WalkSnow; } else { sound = Sounds.Player.WalkGrass; } } return(sound); }
//ауди клип игрока public static AudioClip Get(Sounds.Player sound) { return(Util.Storage.LoadAudioFromResources(Util.File.DIRECTORY_SOUND_PLAYER + sound.ToString())); }
public void Play(Sounds.Player sound) { set = sound; source.Play(); }