2017-10-15 133 views
-4

我在Unity3d編程非常新,我需要在c#中的一點幫助。我的問題是我試圖施展技能而不選擇怪物。方法`CastSkill'沒有超載需要`2'參數

因此代碼:

if (EventSkillFinished()) { 
     var skill = skills[currentSkill]; 

     // apply the skill on the target 
     **CastSkill(skill, target);** 

     if (nextSkill != -1) { 
      currentSkill = nextSkill; 
      nextSkill = -1; 
     } else currentSkill = skill.followupDefaultAttack ? 0 : -1; 

和這裏的一些代碼

public void CastSkill(Skill skill) { 
     if (CastCheckSelf(skill, false) && CastCheckTarget(skill)) { 
      // do the logic in here or let the skill effect take care of it? 
      if (skill.effectPrefab == null || skill.effectPrefab.isPurelyVisual) { 
       // attack 
       if (skill.category == "Attack") { 
        // deal damage directly 
        DealDamageAt(target, damage + skill.damage, skill.aoeRadius); 

回答

0
//This function takes one parameter: 
public void CastSkill(Skill skill) { ... } 

//This is passing two parameters: 
CastSkill(skill, target); 

什麼辦法?

您需要創建一個新函數,該函數接受兩個參數,一個用於正在使用的技能,另一個用於某個Type的目標。

+0

有人對我說「你必須修改CastSkill才能通過(技能,目標)而不是(技能),然後從那裏設置目標,完成。」對不起我編程不好 –

+0

@mhartiancruz你需要修改'公共無效CastSkill(技能技能)'部分。具體來說,創建一個帶有兩個參數的新函數。 – Draco18s

+0

這不提供問題的答案。要批評或要求作者澄清,請在其帖子下方留言。 - [來自評論](/ review/low-quality-posts/17633707) – Suvitruf

相關問題