如何测试 Unity Ads?
How to test Unity Ads?
我有 Unity 5.2,每次加载新场景时我都想加载广告。我将 Unity 广告代码添加到我的脚本中,当我按下按钮时它会改变场景。这是脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.Advertisements;
public class UI1 : MonoBehaviour
{
public void ShowAd()
{
if (Advertisement.IsReady())
{
Advertisement.Show();
}
}
public void ChangeToScene(int sceneToChangeTo)
{
Application.LoadLevel(sceneToChangeTo);
}
}
如何测试脚本是否加载广告?我尚未将应用发布到 Google Play 商店,但我想确保广告有效。
我试过使用日志,但在切换场景时只显示 "Changed Scene"。
using UnityEngine;
using System.Collections;
using UnityEngine.Advertisements;
public class UI1 : MonoBehaviour
{
public void ShowAd()
{
if (Advertisement.IsReady())
Debug.Log("Line 1 of ad script worked!");
{
Advertisement.Show();
Debug.Log("Line 2 of ad script worked, might be showing ads!!");
}
}
public void ChangeToScene(int sceneToChangeTo)
{
Application.LoadLevel(sceneToChangeTo);
Debug.Log("Changed scene!");
}
}
所以问题是你从来没有调用 Advertisement.Show()
。它不会在场景加载或其他情况下自动调用,您必须调用它。因此,例如,您可以稍微修改一下代码,如下所示:
public class UI1 : MonoBehaviour
{
void Start() {
// We use coroutine and not calling Show() directly because
// it is possible that at this point ads are not initialized yet
StartCoroutine(ShowAds());
}
IEnumerator ShowAds() {
if (Advertisement.IsReady()) {
Advertisement.Show();
yield break;
}
// Ads are not initialized yet, wait a little and try again
yield return new WaitForSeconds(1f);
if (Advertisement.IsReady()) {
Advertisement.Show();
yield break;
}
Debug.LogError("Something wrong");
}
public void ChangeToScene(int sceneToChangeTo) {
Application.LoadLevel(sceneToChangeTo);
}
}
您还需要在每个场景中放置一个UI1类型的对象,以便在每个场景中调用Start()函数。
您可以从这里继续。实际上有很多不同的方法可以做到这一点,这里在每个场景开始时调用广告,但你也可以这样做,例如,在场景加载之前通过修改 ChangeScene() 函数,或者制作一个坚不可摧的游戏对象监控 OnLevelWasLoaded() 等。
我有 Unity 5.2,每次加载新场景时我都想加载广告。我将 Unity 广告代码添加到我的脚本中,当我按下按钮时它会改变场景。这是脚本:
using UnityEngine;
using System.Collections;
using UnityEngine.Advertisements;
public class UI1 : MonoBehaviour
{
public void ShowAd()
{
if (Advertisement.IsReady())
{
Advertisement.Show();
}
}
public void ChangeToScene(int sceneToChangeTo)
{
Application.LoadLevel(sceneToChangeTo);
}
}
如何测试脚本是否加载广告?我尚未将应用发布到 Google Play 商店,但我想确保广告有效。
我试过使用日志,但在切换场景时只显示 "Changed Scene"。
using UnityEngine;
using System.Collections;
using UnityEngine.Advertisements;
public class UI1 : MonoBehaviour
{
public void ShowAd()
{
if (Advertisement.IsReady())
Debug.Log("Line 1 of ad script worked!");
{
Advertisement.Show();
Debug.Log("Line 2 of ad script worked, might be showing ads!!");
}
}
public void ChangeToScene(int sceneToChangeTo)
{
Application.LoadLevel(sceneToChangeTo);
Debug.Log("Changed scene!");
}
}
所以问题是你从来没有调用 Advertisement.Show()
。它不会在场景加载或其他情况下自动调用,您必须调用它。因此,例如,您可以稍微修改一下代码,如下所示:
public class UI1 : MonoBehaviour
{
void Start() {
// We use coroutine and not calling Show() directly because
// it is possible that at this point ads are not initialized yet
StartCoroutine(ShowAds());
}
IEnumerator ShowAds() {
if (Advertisement.IsReady()) {
Advertisement.Show();
yield break;
}
// Ads are not initialized yet, wait a little and try again
yield return new WaitForSeconds(1f);
if (Advertisement.IsReady()) {
Advertisement.Show();
yield break;
}
Debug.LogError("Something wrong");
}
public void ChangeToScene(int sceneToChangeTo) {
Application.LoadLevel(sceneToChangeTo);
}
}
您还需要在每个场景中放置一个UI1类型的对象,以便在每个场景中调用Start()函数。
您可以从这里继续。实际上有很多不同的方法可以做到这一点,这里在每个场景开始时调用广告,但你也可以这样做,例如,在场景加载之前通过修改 ChangeScene() 函数,或者制作一个坚不可摧的游戏对象监控 OnLevelWasLoaded() 等。