Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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);
            }
        }
    }