Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

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

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


Ответ
 
Опции темы
Старый 03.08.2019, 23:15   #11
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 219
По умолчанию

рано я начал радоваться, спустя пару дней ошибка вернулась та что и была. Что тут не так скажите https://www.programmersforum.ru/show...50&postcount=6
_Михаил_ вне форума Ответить с цитированием
Старый 13.07.2020, 18:08   #12
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 219
По умолчанию

Кто нибудь знает можно ли в юнити сделать так чтобы показывались только 30 секундные ролики?
_Михаил_ вне форума Ответить с цитированием
Старый 14.08.2020, 11:20   #13
Shadow_BD
 
Регистрация: 21.08.2013
Сообщений: 6
По умолчанию

_Михаил_,
Цитата:
Сообщение от _Михаил_ Посмотреть сообщение
Кто нибудь знает можно ли в юнити сделать так чтобы показывались только 30 секундные ролики?
Показывай только RewardedVideo.
На счет именно 30 секунд не знаю, но юнити тебе подберет доступное видео, которое нельзя будет пропустить
Shadow_BD вне форума Ответить с цитированием
Старый 15.08.2020, 22:37   #14
_Михаил_
Форумчанин
 
Аватар для _Михаил_
 
Регистрация: 11.04.2015
Сообщений: 219
По умолчанию

Здравствуйте, давно меня тут не было. Примерно 3 месяца назад увидел что нужно обновить скрипты на юнити адс, изменив, строки с Monetizations на Advwetisiments. И тут началось веселье. В скрипте я указал 100 очков за 1 ролик а по факту засчитывалось 200 за 1 ролик, ошибка была как на устройстве так и в редакторе. Забросил это дело и оставил скрипт таким как он есть, так как старый вариант хоть и работал медленнее но верно. Сегодня опять взялся за скрипт этот. Для начала решил проверить как он работает, может что-то поменялось и да поменялось. Подсчет стал верным, но радовался я не долго, скомпилированный билд по прежнему прибавлял 200 очков вместо 100. Даже не знаю что и делать. Толи скрипт юнити предлагает ошибочный то ли я где-то что-то не замечаю. Ниже 3 скрипта.

скрипт 1
Код:
using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Monetization;

[RequireComponent (typeof (Button))]
public class ADSBUTT : MonoBehaviour
{
	public string placementId = "video";
	private Button adButton;
	public string GoogleID;
	public int scoreAmount;
	Text scoreText;

	void Start ()
	{
		scoreText = GetComponent<Text> ();
		Score.scoreAmount = PlayerPrefs.GetInt("mon");
		adButton = GetComponent<Button> ();
		if (adButton)
		{
			adButton.onClick.AddListener (ShowAd);
		}

		if (Monetization.isSupported)
		{
			Monetization.Initialize (GoogleID, true);
		}
	}

	public void RESETSCORE ()
	{
		Score.scoreAmount -= Score.scoreAmount;
		PlayerPrefs.SetInt ("mon", Score.scoreAmount);
	}
	void ShowAd ()
	{
		ShowAdCallbacks options = new ShowAdCallbacks ();
		options.finishCallback = HandleShowResult;
		ShowAdPlacementContent ad = Monetization.GetPlacementContent (placementId) as ShowAdPlacementContent;
		ad.Show (options);
	}

	void HandleShowResult (ShowResult result)
	{
		if (result == ShowResult.Finished)
		{
			Score.scoreAmount += 100;
			PlayerPrefs.SetInt ("mon", Score.scoreAmount);
		}
		else if (result == ShowResult.Skipped)
		{
			Debug.LogWarning ("The player skipped the video - DO NOT REWARD!");
		}
		else if (result == ShowResult.Failed)
		{
			Debug.LogError ("Video failed to show");
		}
	}
}
скрипт 2
Код:
using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;

[RequireComponent(typeof(Button))]
public class ADSBUTT : MonoBehaviour, IUnityAdsListener
{
	Button myButton;
	public string myPlacementId = "video";
	public string GoogleID;
	public int scoreAmount;
	Text scoreText;

	void Start()
	{
		scoreText = GetComponent<Text> ();
		Score.scoreAmount = PlayerPrefs.GetInt("mon");
		myButton = GetComponent<Button>();
		myButton.interactable = Advertisement.IsReady(myPlacementId);
		if (myButton) myButton.onClick.AddListener(ShowRewardedVideo);
		Advertisement.AddListener(this);
		Advertisement.Initialize(GoogleID, true);
	}
	void ShowRewardedVideo()
	{
		Advertisement.Show(myPlacementId);
	}
	public void RESETSCORE ()
	{
		Score.scoreAmount -= Score.scoreAmount;
		PlayerPrefs.SetInt ("mon", Score.scoreAmount);
	}
	public void OnUnityAdsReady(string placementId)
	{
		if (placementId == myPlacementId)
		{
			myButton.interactable = true;
		}
	}
	public void OnUnityAdsDidFinish(string placementId, ShowResult showResult)
	{
		if (showResult == ShowResult.Finished)
		{
			Score.scoreAmount += 100;
			PlayerPrefs.SetInt ("mon", Score.scoreAmount);
		}
		else if (showResult == ShowResult.Skipped)
		{
			Debug.LogWarning ("The player skipped the video - DO NOT REWARD!");
		}
		else if (showResult == ShowResult.Failed)
		{
			Debug.LogError ("Video failed to show");
		}
	}

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

	public void OnUnityAdsDidStart(string placementId)
	{
		// Optional actions to take when the end-users triggers an ad.
	}
}
скрипт 3
Код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Score : MonoBehaviour
{
	public static int scoreAmount;
	Text scoreText;

	void Start ()
	{
		scoreText = GetComponent<Text> ();
	}

	void Update ()
	{
		scoreText.text = "" + scoreAmount;
	}
}
В связке скрипт 1 + скрипт 3 все работает верно.
А в связке скрипт 2 + скрипт 3 происходит неверный подсчет (по мимо этого кнопка кликабельна даже если ролик не загружен)

Может подскажите что можно сделать?

Последний раз редактировалось _Михаил_; 15.08.2020 в 22:44.
_Михаил_ вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме от 7000 рублей в месяц



Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
онлайн игры для заработка денег (и вопросы про юнити) _Михаил_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 227 09.11.2019 14:28
Как сделать рекламу Адсенс для мобильных? TrinityToLol Общие вопросы Web 2 22.12.2017 05:01
Мобильное приложение для Андроида Ципихович Эндрю Фриланс 10 05.08.2016 11:21
Как вставить рекламу в приложение oteccc Общие вопросы Delphi 3 15.04.2014 09:46


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Скидки на курсы GeekBrains 40%, выбирайте программу для себя