c# - 'UnityEngine.Advertisements.Editor' 中都存在'Advertisement' 类型
问题描述
我正在使用 Unity Ads 在 Unity 2019.2.21f1 中构建带有广告的游戏。我有以下用于显示广告的简短脚本:
using System.Collections;
using UnityEngine;
using UnityEngine.Advertisements;
public class AdBannerScriptUnity : MonoBehaviour
{
public string gameId = "myGameId";
public string placementId = "AdBanner";
public bool testMode = true;
void Start()
{
Advertisement.Initialize(gameId, testMode);
StartCoroutine(ShowBannerWhenReady());
}
IEnumerator ShowBannerWhenReady()
{
while (!Advertisement.IsReady(placementId))
{
yield return new WaitForSeconds(0.5f);
}
Advertisement.Banner.SetPosition(BannerPosition.BOTTOM_CENTER);
Advertisement.Banner.Show(placementId);
}
}
我在 Unity 服务中启用了广告(Unity 编辑器 UI 右上角的云图标按钮),并从资产商店导入了 Unity 货币化资产。
在构建此游戏时,我收到以下错误:
Assets/Scripts/AdBannerScriptUnity.cs(13,9): error CS0433: The type 'Advertisement' exists in both 'UnityEngine.Advertisements.Editor, Version=3.4.2.0, Culture=neutral, PublicKeyToken=null' and 'UnityEngine.Advertisements, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
我在某处读到自 Unity 5.2 以来,不再需要 Unity Monetization Asset 来显示 Unity 广告,所以我尝试将其删除,但后来我得到了
Assets/Scripts/AdBannerScriptUnity.cs(23,23): error CS0117: 'Advertisement' does not contain a definition for 'Banner'
很明显,资产是必要的,但根据上面发布的第一个错误,我似乎不知何故安装了两个版本?如何确保我只安装了一个版本?
解决方案
我正在使用 Unity 2019.3 6f1 并遇到同样的问题。我在某处读到,如果您使用商店中的货币化资产并启用 Unity 服务中的广告,它们会产生问题。但我无法删除资产。当我从服务中禁用广告时,不再显示广告(自然安静:))因此寻找该帖子的更新。
编辑:伙计,我终于解决了我的问题。事实上,造成冲突的是来自资产商店的货币化资产。您应该使用服务选项卡中的广告并从包管理器(而不是资产商店)导入货币化资产,并从资产商店中删除货币化的所有内容。我附上了您应该从项目文件夹中删除的文件的图像。 Unity 货币化资产存储文件
推荐阅读
- sql - 如何添加汇总行的新列
- typescript - 我应该将哪种类型用于打字稿中的实例属性?
- java - 无法从 Java 下载 Azure Blob
- python - 向 Prettytable 添加额外的行以包含列的总数
- python - Django 将动态名称属性的动态字段添加到前端,然后将其插入到模型中
- reactjs - 为什么我看到使用 fetch 的请求很少,而使用 xhr 的请求很少?
- javascript - 有没有办法忽略 Vue 构建上的资产错误?
- html - 我改变了我的文本框大小现在我的文本框的文本位置不正确
- mysql - VB.net:无法连接到启用 ssl 的 mysql (mariadb)
- flutter - DApp我该怎么办?