
[英]C# Cannot convert from 'string' to 'System.Action<string>'
[英]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.