Ошибка в коде для рекламы

Рейтинг: -2Ответов: 1Опубликовано: 28.03.2023

У меня есть код для игры на c#. Он должен вызывать рекламу от Unity при нажатии на кнопку, но вылезает ошибка:

Assets\Scripts\AdManager.cs(20,30): error CS0117: 'Advertisement' does not contain a definition for 'IsReady'

Вот код:

using UnityEngine;
using UnityEngine.Advertisements;
using UnityEngine.UI;

public class AdManager : MonoBehaviour
{
    public string gameID = "potom"; //ID игры в рекламной сети
    public string placementID = "video"; //ID рекламного блока

    private void Start()
    {
        //Инициализация рекламы
        Advertisement.Initialize(gameID, true);
    }

    //Функция для проверки доступности рекламы
    public bool IsReady()
    {
        //Проверяем, доступна ли реклама в текущий момент
        return Advertisement.IsReady(placementID);
    }

    //Функция для показа рекламы
    public void ShowAd()
    {
         //Проверяем, доступна ли реклама в текущий момент
        if (IsReady())
        {
            //Показываем рекламу
            Advertisement.Show(placementID);
        }
    }
}

Как убрать ошибку, и из-за чего она появляется?

Ответы

▲ -1Принят

Ошибка "CS0117: 'Advertisement' does not contain a definition for 'IsReady'" возникает, когда компилятор не может найти определение метода IsReady() в классе Advertisement.

Скорее всего, проблема заключается в том, что вы используете устаревшую версию Unity, в которой метод IsReady() больше не поддерживается.

Проверьте, используете ли вы последнюю версию Unity, и убедитесь, что вы используете правильную версию пакета Unity Ads SDK. Если вы используете версию Unity 2019.3 или более позднюю, вам следует использовать Unity Ads SDK версии 3.3.0 или более позднюю.

Если вы уверены, что используете правильную версию SDK, попробуйте перезапустить Unity и перекомпилировать проект. Если проблема остается, попробуйте удалить и переустановить пакет Unity Ads SDK.

Также, убедитесь, что вы импортировали пространство имен UnityEngine.Advertisements в начале скрипта.