public AudioClip GetSound(Vector3 worldPos, ETerrainSoundType soundType) { int soundId = GetSoundId(worldPos, soundType); AudioClip audio = null; _dictSounds.TryGetValue(soundId, out audio); return(audio); }
public int GetSoundId(Vector3 worldPos, ETerrainSoundType soundType) { int textureId = GetId(worldPos); TerrainTextureTypeConfigItem texture = GetTextureType(textureId); if (null != texture) { switch (soundType) { case ETerrainSoundType.Normal: return(texture.SoundInfo.Normal); case ETerrainSoundType.Brake: return(texture.SoundInfo.Brake); case ETerrainSoundType.Walk: int[] ids = texture.SoundInfo.WalkIds; if (null != ids && ids.Length > 0) { return(ids[_randGen.Next(ids.Length)]); } break; case ETerrainSoundType.Squat: var squatIds = texture.SoundInfo.SquatIds; if (null != squatIds && squatIds.Length > 0) { return(squatIds[_randGen.Next(squatIds.Length)]); } break; case ETerrainSoundType.Crawl: var crawIds = texture.SoundInfo.CrawlIds; if (null != crawIds && crawIds.Length > 0) { return(crawIds[_randGen.Next(crawIds.Length)]); } break; case ETerrainSoundType.Land: return(texture.SoundInfo.Land); } } return(_defaultSoundId); }
private SoundConfigItem ConvertTerrainSound(PlayerEntity playerEntity, ETerrainSoundType soundType) { var myTerrain = _terrainManager.GetTerrain(_mapConfigManager.SceneParameters.Id); var id = myTerrain.GetSoundId(playerEntity.position.Value, soundType); if (id > 0) { return(_soundConfigManager.GetSoundById(id)); } else { if (Logger.IsWarnEnabled) { Logger.WarnFormat("no {0} sound assigned for terrain {1} in pos {2}", soundType, myTerrain, playerEntity.position.Value); } return(null); } }