需要Unity2D Android的C#脚本的帮助或建议,关于广告。Unity表明我的代码已经过时了
这是我在项目中用于广告的代码“模板”。虽然广告在起作用(测试时有点慢)。Unity告诉我:“ShowOptions.resultCallback”已经过时:“Implement需要Unity2D Android的C#脚本的帮助或建议,关于广告。Unity表明我的代码已经过时了,c#,android,unity3d,C#,Android,Unity3d,这是我在项目中用于广告的代码“模板”。虽然广告在起作用(测试时有点慢)。Unity告诉我:“ShowOptions.resultCallback”已经过时:“ImplementIUnityadListener并调用advision.AddListener()。我试图使用一个侦听器做广告,但失败了……有什么建议吗 using System.Collections; using System.Collections.Generic; using UnityEngine.Advertisements;
IUnityadListener
并调用advision.AddListener()
。我试图使用一个侦听器做广告,但失败了……有什么建议吗
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Advertisements;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class PlayerController : MonoBehaviour
{
string gameId;
bool testMode;
string placementId;
void Start()
{
gameId = "<my id here>";
testMode = false;
placementId = "<placement id here>";
Advertisement.Initialize(gameId, true);
}
void ShowAd()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
//Give internet connectivity feedback here
}
else
{
ShowOptions options = new ShowOptions();
options.resultCallback = HandleShowResult;
Advertisement.Show(placementId, options);
}
}
void HandleShowResult(ShowResult result)
{
switch (result)
{
case ShowResult.Finished:
//Advert completed
break;
case ShowResult.Skipped:
//Advert skipped
break;
case ShowResult.Failed:
//Advert failed
break;
}
}
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine。广告;
使用UnityEngine;
使用UnityEngine.UI;
使用UnityEngine.EventSystems;
公共类玩家控制器:单行为
{
串配子体;
布尔测试模式;
字符串placementId;
void Start()
{
配子体=”;
testMode=false;
placementId=“”;
advision.Initialize(gameId,true);
}
void ShowAd()
{
if(Application.internetReachability==NetworkReachability.NotReachable)
{
//在此处提供internet连接反馈
}
其他的
{
ShowOptions=新的ShowOptions();
options.resultCallback=HandleShowResult;
广告。展示(placementId,选项);
}
}
void HandleShowResult(显示结果结果)
{
开关(结果)
{
案例展示结果。已完成:
//广告完成
打破
案例显示结果。已跳过:
//跳过广告
打破
案例显示结果。失败:
//广告失败
打破
}
}
}
错误基本上会准确地告诉您该做什么: ShowOptions.resultCallback”已过时:“实现IUnityAdsListener和调用播发.AddListener()” 在中,您的代码采用了一个完整的示例:
public class PlayerController : MonoBehaviour, IUnityAdsListener
{
private string gameId;
private bool testMode;
private string placementId;
private bool adsAreReady;
private void Start()
{
gameId = "<my id here>";
testMode = false;
placementId = "<placement id here>";
// WAIT FOR ADS
Advertisment.AddListener(this);
Advertisement.Initialize(gameId, true);
}
public void ShowAd()
{
if (Application.internetReachability == NetworkReachability.NotReachable)
{
//Give internet connectivity feedback here
return;
}
if(!adsAreReady)
{
// Give not ready yet feedback
return;
}
ShowOptions options = new ShowOptions();
Advertisement.Show(placementId, options);
}
// Implement IUnityAdsListener interface methods:
public void OnUnityAdsDidFinish (string placementId, ShowResult showResult)
{
// Define conditional logic for each ad completion status:
switch(showResult)
{
case ShowResult.Finished:
// Reward the user for watching the ad to completion.
break;
case ShowResult.Skipped:
// Do not reward the user for skipping the ad.
break;
case ShowResult.Failed:
Debug.LogWarning (“The ad did not finish due to an error.);
break;
}
}
public void OnUnityAdsReady (string placementId)
{
if (placementId != myPlacementId) return;
adsAreReady = true;
}
public void OnUnityAdsDidError (string message)
{
// Log the error.
}
public void OnUnityAdsDidStart (string placementId)
{
// Optional actions to take when the end-users triggers an ad.
}
}
公共类PlayerController:MonoBehavior,IUnityadListener
{
私有字符串配子ID;
私有布尔测试模式;
私有字符串placementId;
私人bool adsAreReady;
私有void Start()
{
配子体=”;
testMode=false;
placementId=“”;
//等待广告
Advertisment.AddListener(这个);
advision.Initialize(gameId,true);
}
公开无效ShowAd()
{
if(Application.internetReachability==NetworkReachability.NotReachable)
{
//在此处提供internet连接反馈
返回;
}
如果(!adsAreReady)
{
//给出尚未准备好的反馈
返回;
}
ShowOptions=新的ShowOptions();
广告。展示(placementId,选项);
}
//实现IUnityadListener接口方法:
UNITYADSDIDFinish上的公共void(字符串placementId,ShowResult ShowResult)
{
//为每个ad完成状态定义条件逻辑:
开关(显示结果)
{
案例展示结果。已完成:
//奖励观看广告直至完成的用户。
打破
案例显示结果。已跳过:
//不要奖励跳过广告的用户。
打破
案例显示结果。失败:
Debug.LogWarning(“由于错误,ad未完成”);
打破
}
}
公共void onUnityadReady(字符串placementId)
{
如果(placementId!=myPlacementId)返回;
adsAreReady=true;
}
public void OnUnityAdsDidError(字符串消息)
{
//记录错误。
}
公共void OnUnityAdsDidStart(字符串placementId)
{
//最终用户触发广告时要采取的可选操作。
}
}
请注意在您的代码中,您从未调用过
ShowAdd
。它可能应该是public
,并从其他地方调用。谢谢!是的,我确实尝试过在代码中实现API建议,但这对我来说是全新的(它没有显示任何广告)…我可以从您的解决方案中看出,我可能对它的解释有点错误。谢谢。此部分:“Advertisent.AddListener(This);”。返回一个错误:“参数1:无法从'NewAdvertestest'转换为'UnityEngine.Advertises.IUnityAdsListener'“我遗漏了什么吗?可能该类的IUnityAdsListener
实现应该是公共类NewAdvertsTest:monobhavior,IUnityAdsListener