public void Init() { m_NumOfGuns = 0; CreateGunInstances(); m_ActiveGunIdx = m_DefaultGun; m_ActiveGun = m_GunPrefabClone[m_ActiveGunIdx]; m_ActiveGun.SetActive(true); m_ActiveGunScr = m_ActiveGun.GetComponent <GunTemplate>(); }
public void SetActiveGun(int idx) { if (idx != m_ActiveGunIdx) { m_ActiveGunIdx = idx; m_ActiveGun.SetActive(false); m_ActiveGun = m_GunPrefabClone[m_ActiveGunIdx]; m_ActiveGun.SetActive(true); m_ActiveGunScr = m_ActiveGun.GetComponent <GunTemplate>(); } }
private void LoadGunClasses() { string name; foreach(int Class in Enum.GetValues(typeof(GunTemplates))) { name = Enum.GetName(typeof(GunTemplates),Class); XmlDocument doc = new XmlDocument(); doc.LoadXml(((TextAsset) Resources.Load("xml/guns/"+name)).text); foreach(XmlNode x in doc.ChildNodes) { if(x.Name=="gun") { GunTemplate p = new GunTemplate(); foreach(XmlNode m in x.Attributes) { if(m.Name=="id") p.id=int.Parse(m.Value); else if(m.Name=="gunName") p.gunName=m.Value; else if(m.Name=="damage") p.damage=int.Parse(m.Value); else if(m.Name=="reuse") p.reuse=float.Parse(m.Value); else if(m.Name=="attackAngle") p.attackAngle=float.Parse(m.Value); else if(m.Name=="attackRange") p.attackRange=float.Parse(m.Value); else if(m.Name=="bulletSpeed") p.bulletSpeed=float.Parse(m.Value); else if(m.Name=="bulletDispersion") p.bulletDispersion=float.Parse(m.Value); else if(m.Name=="gunType") p.gunType=(BulletType)int.Parse(m.Value); } foreach(XmlNode m in x.ChildNodes) { if(m.Name=="defectChance") { int id=-1; float chance=-1; foreach(XmlNode l in m.Attributes) { if(l.Name=="id") id=int.Parse(l.Value); else if(l.Name=="chance") chance=float.Parse(l.Value); } //p.defectsChance[id]=chance; } } gunClasses.Add(p); } } } Debug.Log("Loaded: "+gunClasses.Count+" gun classes."); }