public void RemoveNodeConfig(EffectNodeProp node) { if (configlist.Contains(node)) { configlist.Remove(node); } }
public void GatherResFile(ref List <string> resItemList, bool gather_all) { //m_EffectProps; SortedDictionary <float, EffectNodeConfig> .Enumerator iter = m_EffectProps.GetEnumerator(); while (iter.MoveNext()) { for (int i = 0; i < iter.Current.Value.configlist.Count; ++i) { EffectNodeProp nodeProp = iter.Current.Value.configlist[i]; if (nodeProp.bActive) { if (gather_all == false) { if (nodeProp.type != EF_NODE_TYPE.ATTACH_FX && nodeProp.type != EF_NODE_TYPE.PLACE_FX) { nodeProp.GatherResFile(ref resItemList); } } else { nodeProp.GatherResFile(ref resItemList); } } } } }
public void AddNodeConfig(EffectNodeProp node) { if (!configlist.Contains(node)) { configlist.Add(node); } }
public void Save(JsonData json_root) { json_root["name"] = m_name; JsonData node_list = new JsonData(); node_list.SetJsonType(JsonType.Array); json_root["nodes"] = node_list; SortedDictionary <float, EffectNodeConfig> .Enumerator iter = m_EffectProps.GetEnumerator(); while (iter.MoveNext()) { for (int i = 0; i < iter.Current.Value.configlist.Count; i++) { EffectNodeProp e = iter.Current.Value.configlist[i]; JsonData e_node = new JsonData(); //e_node["type"] = (int)e.type; //e_node["time"] = e.time; //e_node["enable"] = e.enable; node_list.Add(e_node); e.Write(e_node); } } }
public void Remove(EffectNodeProp n) { // List<EffectNodeProp> nodes; EffectNodeConfig config; // int nKey = (int)(n.time * 1000.0f); if (m_EffectProps.TryGetValue(n.time, out config)) { config.RemoveNodeConfig(n); } }
public void Load(JsonData effect_root) { m_name = effect_root.GetString("name", ""); JsonData node_list = effect_root["nodes"]; int hit_index = 0; for (int n = 0; n < node_list.Count; n++) { // skillEffect.effect_node = effect_root[n]; JsonData js_node = node_list[n]; EF_NODE_TYPE type = (EF_NODE_TYPE)js_node.GetInt32("type", 0); EffectNodeProp effect_node = CreateEffectProp(type); if (effect_node != null) { //effect_node.type = type; //effect_node.time = js_node.GetFloat("time", 0.0f); //effect_node.enable = js_node.GetBool("enable", true); effect_node.Read(js_node); if (effect_node.bActive && effect_node.is_hit_node) { HitNodeProp hitNode = effect_node as HitNodeProp; hitNode.hit_index = hit_index; //发射特效,伤害半径为0,不检测伤害 ArrowFxNodeProp arrow_node = hitNode as ArrowFxNodeProp; if (arrow_node != null) { if (arrow_node.radius > 0.0001f) { hit_index++; } } else { hit_index++; } } Add(effect_node); } } }
public void Add(EffectNodeProp n) { // List<EffectNodeProp> nodes; EffectNodeConfig config; // int nKey = (int)(n.time * 1000.0f); if (m_EffectProps.TryGetValue(n.time, out config)) { //nodes.Add(n); config.AddNodeConfig(n); } else { config = ScriptableObject.CreateInstance <EffectNodeConfig>();//new EffectNodeConfig(); config.AddNodeConfig(n); m_EffectProps.Add(n.time, config); } }
//------------------------------------------------------------------------------------------------------- /** * @brief 创建特效 * @param */ private void CreateEffectNode(SkillEffectProp prop) { SortedDictionary <float, EffectNodeConfig> .Enumerator iter = prop.m_EffectProps.GetEnumerator(); while (iter.MoveNext()) { for (int i = 0; i < iter.Current.Value.configlist.Count; ++i) { EffectNodeProp nodeprop = iter.Current.Value.configlist[i]; EffectNode node = CreateEffectNode(nodeprop.type); if (node == null) { continue; } node.Create(nodeprop); AddEffectNode(nodeprop.time, node); } } }
public virtual bool Create(EffectNodeProp prop) { m_NodeProp = prop; return(true); }