Unity Monetization SDK 3.0实践

版权声明:转载请注明出处。 https://blog.csdn.net/QWBin/article/details/83471886

看了官方的介绍我也是来试试,确实发现很好用,看来unity的发展以后会更加的便捷和实用。官方介绍:https://mp.weixin.qq.com/s/Z3RWD3H1YjV0aF0qEJv4ZQ

接口使用教程:

https://unityads.unity3d.com/help/unity/integration-guide-unity

选择里面的统一集成指南,如下图(我的是网页翻译后的)

因为上面写的很详细,我就不解释了,直接上实践:

首先Unity用UGUI创建几个Button,如下图:

注:一下代码在接口文档里面都有

然后是上代码UnityAdsScript (随便找个空物体放上):
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Monetization;

public class UnityAdsScript : MonoBehaviour {

    // Use this for initialization
    string gameId = "1234567";
    bool testMode = true;

    void Start()
    {
        Monetization.Initialize(gameId, testMode);
    }

    // Update is called once per frame
    void Update () {
        
    }
}

第一个button添加代码:UnityAdsButton

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Monetization;

[RequireComponent(typeof(Button))]
public class UnityAdsButton : MonoBehaviour
{

    public string placementId = "rewardedVideo";
    private Button adButton;
    public string GameID;
//#if UNITY_IOS
//   private string gameId = "1234567";
//#elif UNITY_ANDROID
//    private string gameId = "7654321";
//#endif
     void Awake()
    {
           string gameId = "1234567";
        GameID = gameId;
    }
    void Start()
    {
        adButton = GetComponent<Button>();
        if (adButton)
        {
            adButton.onClick.AddListener(ShowAd);
        }

        if (Monetization.isSupported)
        {
            Monetization.Initialize(GameID, true);
        }
    }
        void Update()
        {
            if (adButton)
            {
                adButton.interactable = Monetization.IsReady(placementId);
            }
        }

        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)
            {
                // Reward the player
            }
            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");
            }
        }
    }

第二个button添加代码RewardedAdsPlacement :

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

using UnityEngine.Monetization;

public class RewardedAdsPlacement : MonoBehaviour
{

    public string placementId = "rewardedVideo";

    public void ShowAd()
    {
        StartCoroutine(WaitForAd());
    }

    IEnumerator WaitForAd()
    {
        while (!Monetization.IsReady(placementId))
        {
            yield return null;
        }

        ShowAdPlacementContent ad = null;
        ad = Monetization.GetPlacementContent(placementId) as ShowAdPlacementContent;

        if (ad != null)
        {
            ad.Show(AdFinished);
        }
    }

    void AdFinished(ShowResult result)
    {
        if (result == ShowResult.Finished)
        {
            Debug.LogError("Finished");
        }
    }
}

第三个button添加代码UnityAdsPlacement

using UnityEngine.Monetization;
using UnityEngine;
using System.Collections;

public class UnityAdsPlacement : MonoBehaviour
{

    public string placementId = "video";

    public void ShowAd()
    {
        StartCoroutine(ShowAdWhenReady());
    }

    private IEnumerator ShowAdWhenReady()
    {
        while (!Monetization.IsReady(placementId))
        {
            yield return new WaitForSeconds(0.25f);
        }

        ShowAdPlacementContent ad = null;
        ad = Monetization.GetPlacementContent(placementId) as ShowAdPlacementContent;

        if (ad != null)
        {
            ad.Show();
        }
    }
}

三个button 的效果是一样的,如下图(广告嘛,肯定是需要网络的):

这样简单的使用广告就可以了。

猜你喜欢

转载自blog.csdn.net/QWBin/article/details/83471886
今日推荐