Unity Monetization SDK 3.0实践

xiaoxiao2023-03-22  28

看了官方的介绍我也是来试试,确实发现很好用,看来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 的效果是一样的,如下图(广告嘛,肯定是需要网络的):

 

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

 

转载请注明原文地址: https://www.6miu.com/read-4987538.html

最新回复(0)