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"); } } }
//一些环境特效,例如风之类的音效. 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); }
//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; } } }
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); }