2016-02-10 6 views
-4

Вот моя функция:Как я могу решить эту проблему в C# Unity

public void PowerupCollected(int AddScore) 
{ 
    score += AddScore; 
    scoreGUI.text = "lol"+score; 
} 

Вот как я называю эту функцию:

if(other.gameObject.name == "Powerup(Clone)") 
{ 
    control.PowerupCollected(); 
} 

здесь является сообщение об ошибке

ошибка CS1501: перегрузка для метода `PowerupCollected 'принимает 0 аргументов

Что не так? Это потому, что я не включаю AddScore, когда в скобках, когда я вызываю функцию?

+10

Вы прочитали сообщение об ошибке? Если да, прочитайте еще раз. –

+0

* Это потому, что я не включаю AddScore, когда в скобках, когда я вызываю функцию * Ответ - Да. – tchelidze

+0

вы также можете объявить функцию следующим образом: ** public void PowerupCollected (int AddScore = 0) {} **, чтобы аргумент стал необязательным –

ответ

1

Либо добавить аргумент AddScore вашему звонку (скажем control.PowerupCollected(42); или сделать аргумент дополнительно:.. public void PowerupCollected(int AddScore = 0)

Поскольку второе решение не имеет смысла в вашем случае, я бы использовать первый

0

Ваш вызов функции должен включать в себя количество баллов вы хотите добавить:

if(other.gameObject.name == "Powerup(Clone)") 
{ 
    control.PowerupCollected(); 
} 

должно быть (например):

if(other.gameObject.name == "Powerup(Clone)") 
{ 
    control.PowerupCollected(10); 
} 

Это добавит 10 к вашему счету.

+0

Спасибо, ребята! Оба сделали эту работу. –

+0

Если вы нашли, что один из наших ответов правильный, принимайте этот ответ как правильный ответ на этот вопрос :) – Tom

Смежные вопросы