我对Unity测试广告没有任何问题,它们在Android构建中显示良好,没有任何错误。
但是当我接近发布时,我在编辑器中关闭了"测试模式",现在我代码中所有对广告的引用突然在当前上下文中不存在了。
错误:
Assets\Scripts\AdManager.cs(32,21): error CS0103: The name 'Advertisement' does not exist in the current context
我没有在网上找到任何关于这个的东西,我真的很困惑。我试过"关闭广告,重新打开团结,打开广告",但它没有摆脱错误。
下面是我的代码:
using UnityEngine;
using UnityEngine.Advertisements;
public class AdManager : MonoBehaviour
{
public void ShowAd(int roundScore){
Debug.Log("Recieved request to display an ad");
Debug.Log(roundScore);
if(roundScore >= 40){
Debug.Log("Trying to show an ad because score is larger than 40");
// Check for ad + show it
if(Advertisement.IsReady("video")){
Advertisement.Show("video");
}
}else{
Debug.Log("Trying to show a random ad");
if(Random.Range(0, 7) == 4){
Debug.Log("Random ad will be shown if ready");
//Check for ad + show it
if(Advertisement.IsReady("video")){
Debug.Log("An ad was ready so it is being shown");
Advertisement.Show("video");
}
}
}
}
}
谢谢你的帮助。
3条答案
按热度按时间a2mppw5e1#
从软件包管理器中删除sdk,如果你已经在Unity Services下的ads选项卡中启用了内置的ads扩展,只需停用它。然后安装并从项目内部的资产存储中导入软件包。问题将会得到解决。编码愉快:)
fhg3lkii2#
以下是我加班了解到的关于这个错误和这种类型的错误有关的团结广告。
1.更新Unity编辑器版本。不知何故,它在升级过程中正确地导入了文件,并解决了问题
2.1)UNITY_ADS宏下的封面导入和其他统一广告执行代码
2.2)涵盖导入和其他特定于平台的Unity广告,因为Unity广告目前仅适用于这两个平台
3.)涵盖UNITY_IOS宏下的iOS特定导入
1.访问“服务”选项卡,然后..取消链接Unity项目-〉重新打开-〉再次链接项目
1.延迟sdk启动。如果在start()或awake()上启动unity,请在1-2秒后在update()中执行。原因与忙碌的线程有关,虽然不是很清楚,但它确实可以工作
brqmpdu13#
在youtube视频Why Are My Unity Ads Not Working? - Advertisement does not exist中,“Info Gamer”解释说,如果你已经做了所有其他的事情,你可能需要通过保存和关闭你的项目,导航到文件夹并删除它来强制Unity重建库目录。重新加载项目并重置你的构建设置以使用Android或IOS,这个错误可能会消失。至少,它对我和其他许多人都有效。
这可能就像在WebGL和Android或IOS之间来回切换一样简单,但我按照他的建议做了。