Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.03.2021, 14:19   #1
suzume
Пользователь
 
Регистрация: 04.03.2021
Сообщений: 14
Сообщение код должен проигрывать рекламу при нажатии кнопки , а то кто посмотрит рекламу должен будет получить 25 игровой валюты. хотел получить рекламу с кнопкой при нажатии точнее настроить )))

Привет Всем код рекламы с вознаграждением взятый из документации
проблема
как бы я не пытался изменить под себя почему-то не получается можете подсказать пожалуйста кто-нибудь как мне быть как настраивать это чудо)))
Код:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
 
[RequireComponent(typeof(Button))]
public class RewardedAdsButton : MonoBehaviour, IUnityAdsListener
{
 
#if UNITY_IOS
    private string gameId = "1486551";
#elif UNITY_ANDROID
    private string gameId = "1486550";
#endif
 
    Button myButton;
    public string mySurfacingId = "rewardedVideo";
    private string gameId;
 
    void Start()
    {
        myButton = GetComponent<Button>();
 
        // Set interactivity to be dependent on the Ad Unit or legacy Placement’s status:
        myButton.interactable = Advertisement.IsReady(mySurfacingId);
 
        // Map the ShowRewardedVideo function to the button’s click listener:
        if (myButton) myButton.onClick.AddListener(ShowRewardedVideo);
 
        // Initialize the Ads listener and service:
        Advertisement.AddListener(this);
        Advertisement.Initialize(gameId, true);
    }
 
    // Implement a function for showing a rewarded video ad:
    void ShowRewardedVideo()
    {
        if (Advertisement.IsReady("rewardedVideo"))//  
        {
            if (PlayerPrefs.GetInt("NoAds") != 1) // 
            {
                var options = new ShowOptions { resultCallback = OnUnityAdsDidFinish }; //  
                Advertisement.Show("rewardedVideo", options);
            }
        }
 
        Advertisement.Show(mySurfacingId);
 
 
 
    }
 
    // Implement IUnityAdsListener interface methods:
    public void OnUnityAdsReady(string surfacingId)
    {
        // If the ready Ad Unit or legacy Placement is rewarded, activate the button: 
        if (surfacingId == mySurfacingId)
        {
            myButton.interactable = true;
        }
    }
 
    public void OnUnityAdsDidFinish(string surfacingId, ShowResult showResult)
    {
        // Define conditional logic for each ad completion status:
        if (showResult == ShowResult.Finished)
        {
            Debug.Log("The ad was successfully shown.");
            int coins = PlayerPrefs.GetInt("coins");
            coins += 20;
            PlayerPrefs.SetInt("coins", coins);
        }
        else if (showResult == ShowResult.Skipped)
        {
            Debug.Log("The ad was skipped before reaching the end.");
        }
        else if (showResult == ShowResult.Failed)
        {
            Debug.LogWarning("“The ad did not finish due to an error.”");
        }
    }
 
    public void OnUnityAdsDidError(string message)
    {
        // Log the error.
    }
 
    public void OnUnityAdsDidStart(string surfacingId)
    {
        // Optional actions to take when the end-users triggers an ad.
    }
}
suzume вне форума Ответить с цитированием
Старый 09.03.2021, 06:05   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Название темы вообще не отражает суть вопроса.
Какая документация? какое вознаграждение? откуда? за что?
Что должен делать код?
как вы пытались менять? зачем? что хотели получить?
Alar вне форума Ответить с цитированием
Старый 09.03.2021, 12:01   #3
suzume
Пользователь
 
Регистрация: 04.03.2021
Сообщений: 14
По умолчанию

Alar, простите за некорректный вопрос сейчас перефразируя.
Код взят в документации для рекламы Unity с вознаграждением для кнопки .
код должен проигрывать рекламу при нажатии кнопки , а то кто посмотрит рекламу должен будет получить 25 игровой волюты. хотел получить рекламу с кнопкой при нажатии точнее настроить )))
вот чистый код и руководство)))

Вознагражденные кнопки видеорекламы
Использование кнопки, позволяющей игроку выбрать просмотр рекламы, является обычной реализацией для вознагражденной видеорекламы. Используйте приведенный ниже пример кода для создания кнопки вознагражденной рекламы. Кнопка объявления отображает объявление при нажатии, пока реклама доступна. Настройка кнопки в редакторе Unity:

Выберите игровой объект > > пользовательский интерфейс > > кнопка, чтобы добавить кнопку к вашей сцене.
Выберите кнопку, которую вы добавили в свою сцену, а затем добавьте к ней компонент сценария с помощью инспектора (добавить компонент > > новый сценарий). Назовите сценарий RewardedAdsButtonв соответствии с именем класса.
Откройте скрипт и добавьте следующий код:
Код:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;

[RequireComponent (typeof (Button))]
public class RewardedAdsButton : MonoBehaviour, IUnityAdsListener {

    #if UNITY_IOS
    private string gameId = "1486551";
    #elif UNITY_ANDROID
    private string gameId = "1486550";
    #endif

    Button myButton;
    public string mySurfacingId = "rewardedVideo";

    void Start () {   
        myButton = GetComponent <Button> ();

        // Set interactivity to be dependent on the Ad Unit or legacy Placement’s status:
        myButton.interactable = Advertisement.IsReady (mySurfacingId); 

        // Map the ShowRewardedVideo function to the button’s click listener:
        if (myButton) myButton.onClick.AddListener (ShowRewardedVideo);

        // Initialize the Ads listener and service:
        Advertisement.AddListener (this);
        Advertisement.Initialize (gameId, true);
    }

    // Implement a function for showing a rewarded video ad:
    void ShowRewardedVideo () {
        Advertisement.Show (mySurfacingId);
    }

    // Implement IUnityAdsListener interface methods:
    public void OnUnityAdsReady (string surfacingId) {
        // If the ready Ad Unit or legacy Placement is rewarded, activate the button: 
        if (surfacingId == mySurfacingId) {        
            myButton.interactable = true;
        }
    }

    public void OnUnityAdsDidFinish (string surfacingId, ShowResult showResult) {
        // Define conditional logic for each ad completion status:
        if (showResult == ShowResult.Finished) {
            // Reward the user for watching the ad to completion.
        } else if (showResult == ShowResult.Skipped) {
            // Do not reward the user for skipping the ad.
        } else if (showResult == ShowResult.Failed) {
            Debug.LogWarning (“The ad did not finish due to an error.”);
        }
    }

    public void OnUnityAdsDidError (string message) {
        // Log the error.
    }

    public void OnUnityAdsDidStart (string surfacingId) {
        // Optional actions to take when the end-users triggers an ad.
    } 
}
suzume вне форума Ответить с цитированием
Старый 10.03.2021, 00:43   #4
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,758
По умолчанию

Вероятно для начала нужно зарегистрироваться в системе которая откручивает, отдаёт рекламу. потом настроить для своих данных.
Alar вне форума Ответить с цитированием
Старый 10.03.2021, 22:00   #5
suzume
Пользователь
 
Регистрация: 04.03.2021
Сообщений: 14
По умолчанию

Alar, Реклама Unity или ПлейМаркет что не подойдёт что ли ???я уже одну рекламу настроил все работает ))) а с вознаграждением кнопкой не понимаю что-то ))) как бы не могу просто в коде правильно написать выдаёт ошибку при этом слове OnUnityAdsDidFinish
в коде
Код:
  void ShowRewardedVideo()
    {
        if (Advertisement.IsReady("rewardedVideo"))//  
        {
            if (PlayerPrefs.GetInt("NoAds") != 1) // 
            {
                var options = new ShowOptions { resultCallback =>>>> OnUnityAdsDidFinish<<<< }; //  
                Advertisement.Show("rewardedVideo", options);
            }
        }
 
        Advertisement.Show(mySurfacingId);
 
 
 
    }
что я делаю не так не могу понять
можете подсказать как это исправить или как изменить буду очень признателен

Последний раз редактировалось suzume; 10.03.2021 в 22:08.
suzume вне форума Ответить с цитированием
Старый 11.03.2021, 04:26   #6
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 138
По умолчанию

Текст ошибки покажи. Просто информации

Цитата:
Сообщение от suzume Посмотреть сообщение
выдаёт ошибку при этом слове OnUnityAdsDidFinish
это маловато.
ichi вне форума Ответить с цитированием
Старый 11.03.2021, 10:59   #7
suzume
Пользователь
 
Регистрация: 04.03.2021
Сообщений: 14
По умолчанию

ichi,
Assets\Scripts\Ads\RewardedAdsButto n.cs(45,66): error CS0123: No overload for 'OnUnityAdsDidFinish' matches delegate 'Action<ShowResult>'
suzume вне форума Ответить с цитированием
Старый 11.03.2021, 14:06   #8
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 138
По умолчанию

Цитата:
Сообщение от suzume Посмотреть сообщение
Advertisement.Show("rewardedVideo", options);
Почему метод получает два параметра, по документации должен быть один? Клик.

Странно, на стековерфлоу нашел пример кода Advertisement.Show("rewardedVideo", options); с двумя параметрами.

Последний раз редактировалось ichi; 11.03.2021 в 14:25.
ichi вне форума Ответить с цитированием
Старый 11.03.2021, 14:14   #9
ichi
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 138
По умолчанию

Цитата:
Сообщение от suzume Посмотреть сообщение
var options = new ShowOptions { resultCallback =>>>> OnUnityAdsDidFinish<<<< }; //
Если так написать
Код:
ShowOptions options = new ShowOptions();

Последний раз редактировалось ichi; 11.03.2021 в 14:16.
ichi вне форума Ответить с цитированием
Старый 12.03.2021, 01:30   #10
suzume
Пользователь
 
Регистрация: 04.03.2021
Сообщений: 14
По умолчанию

Цитата:
Сообщение от ichi Посмотреть сообщение
Если так написать
Код:
ShowOptions options = new ShowOptions();
Не так то же не получается )))попробую полностью переписать возможно где то неправильно прописал ))) спасибо за помощь )))
suzume вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при нажатии на "рекламу " чтобы открывалась моя заданная страница(ссылка) ketlller HTML и CSS 0 29.05.2011 15:26
ормируется объект размером 30х30 и он должен при нажатии на клавишу,двигаться в 8ми направлениях..а при н Krasoto4ka Помощь студентам 0 22.05.2010 17:41
при нажатии на кнопку должен происходить расчет по формуле vKaterinav БД в Delphi 1 12.05.2010 21:04
в поле ввести число и при нажатии кнопки получить рандом от этого числа NIQK HTML и CSS 4 03.03.2010 10:51