public void AddSkill(SkillReward reward) { SkillType st = reward.GetSkillType(); if (!m_skillMap.ContainsKey(st)) { return; } SkillData sd = m_skillMap[st]; RectTransform rt = Instantiate(sd.sprefab.GetComponent <RectTransform>(), this.transform) as RectTransform; rt.sizeDelta = new Vector2(64, 64); rt.GetComponent <SkillReward>().enabled = false; ParticleSystem spray = rt.Find("Spark").GetComponent <ParticleSystem>(); spray.Stop(); m_skillList.Insert(0, rt.gameObject.AddComponent <Skill>()); updateSkillsPos(); // 检测更新技能表 if (sd.sstyle == SkillStyle.Times) { sd.stimes--; m_skillMap[st] = sd; if (sd.stimes <= 0) { m_skillMap.Remove(sd.stype); } } // 添加技能回调 onAddSkill(sd); }
void OnTriggerEnter2D(Collider2D collider) { if (collider.tag == "Reward") { Reward reward = collider.GetComponent <Reward>(); if (reward.enabled) { SkillReward sr = reward.GetComponent <SkillReward>(); if (sr != null) { reward.PlayDeadAnim(GameManager.Instance.GetSkillTrans(), () => { GameManager.Instance.AddSkill(sr); sr.OnAddSkill(); }); } else { reward.PlayDeadAnim(GameManager.Instance.GetScoreTrans(), () => { GameManager.Instance.AddScore(reward.GetScore()); }); } // 播放音效 AudioClip clip = Resources.Load <AudioClip>("Sounds/GainReward"); AudioSource.PlayClipAtPoint(clip, Vector3.zero); } } }
protected override void OnGenerateReward(Reward reward) { SkillReward sr = reward.GetComponent <SkillReward>(); sr.SetSkillType(m_curSkillData.Value.stype); }
public void AddSkill(SkillReward reward) { m_skillsInfo.AddSkill(reward); }