我試圖在我的游戲中統一設定簡單的廣告系統,但是統一檔案中的獎勵廣告腳本給了我無效的令牌錯誤,我不知道為什么
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Advertisements;
public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
[SerializeField] Button _showAdButton;
[SerializeField] string _androidAdUnitId = "Rewarded_Android";
[SerializeField] string _iOSAdUnitId = "Rewarded_iOS";
public string _adUnitId = null;
#if UNITY_IOS
_adUnitId = _iOSAdUnitId;
#elif UNITY_ANDROID
_adUnitId = _androidAdUnitId;
#endif
Assets\Scripts\RewardedAdsButton.cs(14,13):錯誤 CS1519:類、結構或介面成員宣告中的無效標記“=”
Assets\Scripts\RewardedAdsButton.cs(14,31): 錯誤 CS1519: 無效的令牌 ';' 在類、結構或介面成員宣告中
uj5u.com熱心網友回復:
在這種情況下,檔案極具誤導性!
您不能只是在班級級別重新分配欄位。特別是不要使用其他非常量欄位!你不能在任何方法之外擁有它。
這可能應該發生在像這樣的方法中 Awake
public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
[SerializeField] Button _showAdButton;
[SerializeField] string _androidAdUnitId = "Rewarded_Android";
[SerializeField] string _iOSAdUnitId = "Rewarded_iOS";
[NonSerialized] public string _adUnitId = null;
private void Awake ()
{
#if UNITY_IOS
_adUnitId = _iOSAdUnitId;
#elif UNITY_ANDROID
_adUnitId = _androidAdUnitId;
#endif
}
...
}
或者,我實際上寧愿簡單地使用一個屬性,例如
public class RewardedAdsButton : MonoBehaviour, IUnityAdsLoadListener, IUnityAdsShowListener
{
[SerializeField] Button _showAdButton;
[SerializeField] string _androidAdUnitId = "Rewarded_Android";
[SerializeField] string _iOSAdUnitId = "Rewarded_iOS";
public string _adUnitId
{
get
{
#if UNITY_IOS
return _iOSAdUnitId;
#elif UNITY_ANDROID
return _androidAdUnitId;
#else
return null;
#endif
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385954.html
