//public int Id; //public string Name; //public int Level; //public EffectAuthoring[] EffectElements; public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem) { var skill = new Skill { //Id = Id, //Name = Name, //Level = Level }; dstManager.AddComponentData <Skill>(entity, skill); var statBuffer = dstManager.AddBuffer <StatElement>(entity); var statNum = (byte)ESkillStatType.Max; for (int i = 0; i < statNum; i++) { statBuffer.Add(new StatElement { StatId = (byte)i }); } //if(EffectElements != null) //{ // var buffer = dstManager.AddBuffer<SkillEffectElement>(entity); // for(int i = 0; i< EffectElements.Length; i++) // { // var effectEntity = conversionSystem.GetPrimaryEntity(EffectElements[i].gameObject); // buffer.Add(new SkillEffectElement { EffectEntity = effectEntity }); // } //} var childCount = transform.childCount; if (childCount > 0) { var buffer = dstManager.AddBuffer <SkillEffectElement>(entity); for (int i = 0; i < childCount; i++) { var child = transform.GetChild(i).gameObject; var effectAuthoring = child.GetComponent <EffectAuthoring>(); var effectEntity = conversionSystem.GetPrimaryEntity(child); var element = new SkillEffectElement { EffectType = effectAuthoring.Type, EffectEntity = effectEntity }; buffer.Add(element); } } }
// Get category public bool GetSkillEffectElement(int skillEffectID, out SkillEffectElement skillEffectElement) { skillEffectElement = null; if (!_skillEffectElementList.ContainsKey(skillEffectID)) { return(false); } skillEffectElement = _skillEffectElementList[skillEffectID]; return(true); }
public bool GetSkillEffectElement(string skillEffectName, out SkillEffectElement skillEffectElement) { skillEffectElement = null; foreach (SkillEffectElement val in _skillEffectElementList.Values) { if (val._skillEffectName == skillEffectName) { skillEffectElement = val; return(true); } } return(false); }
public bool LoadSkillElement(SecurityElement element, out SkillEffectElement skillEffectElement) { skillEffectElement = new SkillEffectElement(); if (element.Tag != "SkillEffect") { return(false); } skillEffectElement._skillEffectID = StrParser.ParseDecInt(element.Attribute("EffectID"), -1); skillEffectElement._skillEffectName = StrParser.ParseStr(element.Attribute("Name"), ""); if (element.Children == null) { return(false); } foreach (SecurityElement childrenElement in element.Children) { if (childrenElement.Tag == "Particle") { if (!LoadSkillParticleElement(childrenElement, out skillEffectElement._skillParticleElement)) { continue; } skillEffectElement._skillParticleElementList.Add(skillEffectElement._skillParticleElement); } else if (childrenElement.Tag == "Sound") { if (!LoadSkillSoundElement(childrenElement, out skillEffectElement._skillSoundElement)) { continue; } } } return(true); }