繁体   English   中英

无法从“字符串”转换为“System.Action”<googlemobileads.api.initializationstatus> ' 在 C# 统一</googlemobileads.api.initializationstatus>

[英]Cannot convert from 'string' to 'System.Action<GoogleMobileAds.Api.InitializationStatus>' in C# Unity

这是 Google admob 脚本,但 Unity 给我错误参数 1:无法从“字符串”转换为“System.Action<GoogleMobileAds.Api.InitializationStatus>”。 它在 void Start() function 中强调了 appID 并表示参数 1:无法从“字符串”转换为“System.Action<GoogleMobileAds.Api.InitializationStatus>”请帮我解决这个问题。

`using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds;
using System;

public class addmanager_script : MonoBehaviour 
{
    public BannerView bannerview;
    public InterstitialAd regularad;
    private string appID="ca-app-pub-5133215721502784~7588202759";
    private string regularID="ca-app-pub-5133215721502784/3265814366";
    // Use this for initialization
    void Start () 
    {
        MobileAds.Initialize (appID);
        //RequestAd ();
        RequestBanner ();
    }


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

    }

    public void OnClickShowBanner()
    {
        this.RequestBanner ();
    }

    public void OnClickShowAd()
    {
        this.RequestAd ();
    }

    private void RequestAd()
    {
        regularad = new InterstitialAd (regularID);
        AdRequest request = new AdRequest.Builder ().Build ();
        regularad.LoadAd (request);
    }

    private void RequestBanner()
    {
        #if UNITY_ANDROID
        string bannerID = "ca-app-pub-5133215721502784/6909545908";
        #elif UNITY_IPHONE
        string adUnitId = bannerID;
        #else
        string bannerID  ="ca-app-pub-5133215721502784/6909545908";
        #endif

        bannerview = new BannerView (bannerID, AdSize.Banner, AdPosition.Bottom);
        AdRequest request = new AdRequest.Builder ().Build ();
        bannerview.LoadAd (request);
        bannerview.Show ();
        //bannerview.OnAdLoaded += HandleOnAdLoaded;

    }

    void HandleOnAdLoaded(object a, EventArgs args)
    {
        print ("loaded");
        bannerview.Show ();
    }

    public void Show()
    {
        if (regularad.IsLoaded ()) 
        {
           regularad.Show ();
         }

    }

}`

我不明白这个问题的解决方案是什么,因为我是编码新手。

来自文档

...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });
    }
}

所以问题是您不需要将任何字符串参数传递给 MobileAds.Initialize,而是需要传递通过参数接收的委托/操作/回调GoogleMobileAds.Api.InitializationStatus

所以你可以像上面的例子那样做,或者像这样:

...
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(OnMobileAdsInitialized);
    }

    private void OnMobileAdsInitialized(InitializationStatus initStatus)
    {
        //Do something with that status
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM