public void Fade3D(string layerName, string sourceName, float fromVol, float toVol, float time) { Sound3DLayerData layer = soundLayers3D.FirstOrDefault(l => l.layerName == layerName); if (layer == null) { return; } SoundSourceData sourceData = layer.soundData.sources.FirstOrDefault(c => c.sourceName == sourceName); if (sourceData == null) { return; } GameObject target = sourceData.source.gameObject; SoundFadeCallbackBehabiour cb = target.AddComponent <SoundFadeCallbackBehabiour>(); cb.audioSource = sourceData.source; iTween.ValueTo(target, iTween.Hash( "from", fromVol, "to", toVol, "time", time, "onupdate", "fade_updated", "onupdatetarget", target, "oncomplete", "fade_completed", "oncompletetarget", target)); }
public void AddLayer3D(Sound3DLayerData layer) { if (!soundLayers3DTable.ContainsKey(layer.layerName)) { soundLayers3DTable.Add(layer.layerName, layer); } else { Debug.LogWarning("SoundManager :: layer is already exists."); } }
private void InternalStop3D(string layerName, string sourceName, bool asAll) { if (layerName != "") { Sound3DLayerData layer = soundLayers3D.FirstOrDefault(l => l.layerName == layerName); if (layer == null) { return; } if (sourceName == "") { foreach (SoundSourceData sourceData in layer.soundData.sources) { if (sourceData.source.isPlaying) { sourceData.source.Stop(); } } } else { SoundSourceData sourceData = layer.soundData.sources.FirstOrDefault(c => c.sourceName == sourceName); if (sourceData == null) { return; } if (sourceData.source.isPlaying) { sourceData.source.Stop(); } } } else { foreach (Sound3DLayerData layer in soundLayers3D) { if (asAll && !layer.IgnoreAllMethod) { foreach (SoundSourceData sourceData in layer.soundData.sources) { if (sourceData.source.isPlaying) { sourceData.source.Stop(); } } } } } }
public void Play3D(string layerName, string sourceName, bool overlap, bool loop, bool asOneShot) { Sound3DLayerData layer = soundLayers3D.FirstOrDefault(l => l.layerName == layerName); if (layer == null) { return; } if (layer.soundData.use) { SoundSourceData sourceData = layer.soundData.sources.FirstOrDefault(c => c.sourceName == sourceName); if (sourceData == null) { return; } if (!overlap) { if (sourceData.source.isPlaying) { sourceData.source.Stop(); } } sourceData.source.volume = layer.soundData.volume; if (asOneShot) { sourceData.source.PlayOneShot(sourceData.source.clip); } else { sourceData.source.loop = loop; sourceData.source.Play(); } } }
public void AddSource3D(string layerName, string sourceName, AudioSource source) { if (!soundLayers3DTable.ContainsKey(layerName)) { Sound3DLayerData layer = new Sound3DLayerData(); layer.layerName = layerName; AddLayer3D(layer); } SoundSourceData exist = soundLayers3DTable[layerName].soundData.sources.Find((s) => s.sourceName == sourceName); if (exist == null) { SoundSourceData sourceData = new SoundSourceData(); sourceData.sourceName = sourceName; sourceData.source = source; soundLayers3DTable[layerName].soundData.sources.Add(sourceData); } else { Debug.LogWarning("SoundManager :: source is already exists."); } }
public bool IsPlay3D(string layerName, string sourceName) { Sound3DLayerData layer = soundLayers3D.FirstOrDefault(l => l.layerName == layerName); if (layer == null) { return(false); } if (layer.soundData.use) { SoundSourceData sourceData = layer.soundData.sources.FirstOrDefault(c => c.sourceName == sourceName); if (sourceData == null) { return(false); } return(sourceData.source.isPlaying); } else { return(false); } }