private void CreateAudio(Scene3DAudioData audioData) { GameObject obj = new GameObject(); obj.transform.position = audioData.PointPos; obj.name = "Audio_" + audioData.Sound; AudioSource audioSource = obj.AddComponent <AudioSource>(); audioSource.maxDistance = audioData.Radius; audioSource.rolloffMode = AudioRolloffMode.Linear; audioSource.dopplerLevel = 0; audioSource.loop = true; audioSource.clip = SceneSoundResManager.Instance.GetSceneSFXClip(audioData.Sound).Clip; SetVolume(audioSource, GameManager.Instance.m_gameSettings.SfxVolume); audioSource.Play(); AudioList.Add(audioSource); }
private static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromPath) { if (CheckResModified(importedAssets) || CheckResModified(deletedAssets) || CheckResModified(movedAssets)) { string path = System.IO.Path.Combine(EW_RESOURCE_MULTILANGUAGE_FOLDER, "Scene3DAudio.xml"); TextReader tr = new StreamReader(path); string text = tr.ReadToEnd(); if (text == null) { Debug.LogError("Scene3DAudio file not exist"); return; } else { XmlSpreadSheetReader.ReadSheet(text); XmlSpreadSheet sheet = XmlSpreadSheetReader.Output; int langCount = XmlSpreadSheetReader.Keys.Length - 1; string[] keys = XmlSpreadSheetReader.Keys; object[] AudioIds = sheet[keys[0]]; List <Scene3DAudioData> tempList = new List <Scene3DAudioData>(); for (int i = 2; i < AudioIds.Length; i++) { Scene3DAudioData data = new Scene3DAudioData(); data.MapId = Convert.ToInt32(sheet["MapID"][i]); string posStr = sheet["PointPos"][i].ToString(); string[] posXYZ = posStr.Split('+'); data.PointPos = new Vector3(int.Parse(posXYZ[1]), int.Parse(posXYZ[2]), int.Parse(posXYZ[3])); data.Radius = Convert.ToInt32(sheet["Radius"][i]); data.Sound = sheet["Sound"][i].ToString(); tempList.Add(data); } CreateScene3DAudioDataBase(tempList); } } }