Я внедряю объявления Unity3D в свою игру для Android. Я использую вспомогательный класс, который Unity предоставляет для управления различными событиями.Как изменить переменную экземпляра из статического метода?
Если пользователь смотрит видео и завершает его, я вознаграждаю пользователя игровыми деньгами (конфеты). Этот метод вызывается после того, как видеореклама инициализирован:
private static void HandleShowResult (ShowResult result)
{
switch (result)
{
case ShowResult.Finished:
Debug.Log("The ad was successfully shown.");
break;
case ShowResult.Skipped:
Debug.Log("The ad was skipped before reaching the end.");
break;
case ShowResult.Failed:
Debug.LogError("The ad failed to be shown.");
break;
}
}
В классе комментарий он говорит, что я должен настроить этот метод для выполнения действий на основе того, было ли успешно показано объявление или нет.
Если объявление было успешно показано, я хочу обновить конфету пользователя. Вот мой CandyManager класс, который обновляет конфеты, которые пользователь собирает или зарабатывает в игре:
[System.Serializable]
public class CandyManger : MonoBehaviour {
// START
public Text candyBarText;
public Text candyBarTextShadow;
// PLAY
public Text candyBarText2;
public Text candyBarTextShadow2;
public int candy;
void Update(){
candyBarText.text = "" + candy;
candyBarTextShadow.text = "" + candy;
candyBarText2.text = "" + candy;
candyBarTextShadow2.text = "" + candy;
}
}
То, что я хотел бы сделать, это быть в состоянии обновить конфеты, как это внутри статической HandleShowResult():
candyManager.candy = candyManager.candy + 5;
«candyManager» является текущим экземпляром класса CandyManager
Если я не могу обновить переменную экземпляра из статического метода, то как я могу обновить его, когда видео успешно показано?
Мероприятия/делегаты? – ryanyuyu
Передайте текущий экземпляр вашего CandyManager статическому методу? –