Esempio n. 1
0
 public void LoadEffect(string file)
 {
     if (!EffectList.ContainsKey(file))
     {
         SfxFile f = new SfxFile();
         try
         {
             if (f.ParseFile(file))
             {
                 //过滤掉声音的
                 //bool add = false;
                 //for (int i = 0; i < f.effectList.Count; i++)
                 //{
                 //    if (f.effectList[i].EffectType != "AUDIO")
                 //    {
                 //        add = true;
                 //        break;
                 //    }
                 //}
                 //if (add)
                 EffectList.Add(file, f);
             }
         }
         catch (Exception exp)
         {
             Debug.LogError(file + " parse error" + exp.StackTrace);
             throw new Exception("effect load failed");
         }
     }
 }
Esempio n. 2
0
 //一些环境特效,例如风之类的音效.
 public SFXEffectPlay PlayEffect(string file, GameObject obj, bool once = false)
 {
     if (!EffectList.ContainsKey(file))
     {
         SfxFile f = new SfxFile();
         try
         {
             if (f.ParseFile(file))
             {
                 EffectList.Add(file, f);
                 //Debug.LogError("effect file:" + file);
                 return(f.Play(obj, once));
             }
             else
             {
                 Debug.LogError(file + " parse error445");
             }
         }
         catch
         {
             Debug.LogError(file + " parse error449");
         }
     }
     else
     {
         //Debug.LogError("effect file:" + file + " 455");
         return(EffectList[file].Play(obj, once));
     }
     return(null);
 }
Esempio n. 3
0
 //target描述,此特效的主调者
 //timePlayed用于同步动作和特效。快速出招时,特效要加一个已经播放时间,否则特效跟不上动作的播放步骤
 public SFXEffectPlay PlayEffect(string file, CharacterLoader target, float timePlayed = 0.0f)
 {
     if (!EffectList.ContainsKey(file))
     {
         SfxFile f = new SfxFile();
         try
         {
             if (f.ParseFile(file))
             {
                 EffectList.Add(file, f);
                 //Debug.LogError("effect file:" + file);
                 return(f.Play(target, timePlayed));
             }
         }
         catch
         {
             Debug.LogError(file + " parse error");
         }
     }
     else
     {
         //Debug.LogError("effect file:" + file);
         return(EffectList[file].Play(target, timePlayed));
     }
     return(null);
 }
 //target描述,此特效的主调者
 //timePlayed用于同步动作和特效。快速出招时,特效要加一个已经播放时间,否则特效跟不上动作的播放步骤
 public SFXEffectPlay PlayEffect(string file, CharacterLoader target, float timePlayed = 0.0f)
 {
     if (!EffectList.ContainsKey(file))
     {
         SfxFile f = new SfxFile();
         try
         {
             f.ParseFile(file);
             EffectList[file] = f;
             //Debug.LogError("effect file:" + file);
             return(f.Play(target, timePlayed));
         }
         catch (Exception exp)
         {
             Debug.LogError(string.Format("{0}  parse error {1}", file, exp.Message));
             EffectList[file] = f;
         }
     }
     else
     {
         //Debug.LogError("effect file:" + file);
         if (EffectList[file].error)
         {
             return(null);
         }
         return(EffectList[file].Play(target, timePlayed));
     }
     return(null);
 }
 //一些环境特效,例如风之类的音效.
 public SFXEffectPlay PlayEffect(string file, GameObject obj, bool once = false, bool preload = false)
 {
     if (!EffectList.ContainsKey(file))
     {
         SfxFile f = new SfxFile();
         try
         {
             f.ParseFile(file);
             EffectList[file] = f;
             if (!f.error)
             {
                 return(f.Play(obj, once, preload));
             }
         }
         catch
         {
             EffectList[file] = f;
             Debug.LogError(string.Format("{0}  parse error", file));
         }
     }
     else
     {
         if (EffectList[file].error)
         {
             return(null);
         }
         //Debug.LogError("effect file:" + file + " 455");
         return(EffectList[file].Play(obj, once, preload));
     }
     return(null);
 }
    public void InitSync()
    {
        TextAsset list = Resources.Load <TextAsset>("effect.lst");

        Eff      = list.text.Split(new char[] { '\r', '\n' }, System.StringSplitOptions.RemoveEmptyEntries);
        TotalSfx = Eff.Length;
        for (int i = 0; i < Eff.Length; i++)
        {
            if (!EffectList.ContainsKey(Eff[i]))
            {
                SfxFile f = new SfxFile();
                f.ParseFile(Eff[i]);
                EffectList[Eff[i]] = f;
            }
        }
    }
Esempio n. 7
0
    SfxFile LoadSfx(string file)
    {
        SfxFile f = new SfxFile();

        if (CombatData.Ins.Chapter != null)
        {
            if (PluginEffect.ContainsKey(file))
            {
                return(PluginEffect[file]);
            }
            //去掉标识符后的拓展名
            string name = file;
            int    dot  = file.LastIndexOf('.');
            if (dot != -1)
            {
                name = file.Substring(0, dot);
            }
            string path = CombatData.Ins.Chapter.GetResPath(FileExt.Sfx, name);
            if (!string.IsNullOrEmpty(path))
            {
                try {
                    f.ParseFile(path);
                    PluginEffect[path] = f;
                    return(f);
                } catch (Exception exp) {
                }
            }
        }
        f = new SfxFile();
        try {
            f.ParseFile(file);
            Effect[file] = f;
            return(f);
        } catch (Exception exp) {
        }
        return(null);
    }
    public SFXEffectPlay PlayEffect(string file, Vector3 position, bool once = false, bool preload = false)
    {
        GameObject obj = new GameObject(file);

        obj.transform.position   = position;
        obj.transform.rotation   = Quaternion.identity;
        obj.transform.localScale = Vector3.one;
        if (!EffectList.ContainsKey(file))
        {
            SfxFile f = new SfxFile();
            try
            {
                f.ParseFile(file);
                EffectList[file] = f;
                if (!f.error)
                {
                    return(f.Play(obj, once, preload));
                }
            }
            catch
            {
                EffectList[file] = f;
                Debug.LogError(string.Format("{0}  parse error", file));
            }
        }
        else
        {
            if (EffectList[file].error)
            {
                return(null);
            }
            //Debug.LogError("effect file:" + file + " 455");
            return(EffectList[file].Play(obj, once, preload));
        }
        return(null);
    }