文档中官方代码上的 Unity3D 无效令牌错误

Posted

技术标签:

【中文标题】文档中官方代码上的 Unity3D 无效令牌错误【英文标题】:Unity3D invalid token error on official code from documentation 【发布时间】:2022-01-18 00:31:51 【问题描述】:

我试图在我的游戏中统一设置简单的广告系统,但统一文档中的奖励广告脚本给了我无效令牌错误,我不知道为什么

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:无效令牌“;”在类、结构或接口成员声明中

【问题讨论】:

【参考方案1】:

在这种情况下,文档极具误导性!

您不能只在班级级别重新分配字段。特别是不使用其他非常量字段!您不能在任何方法之外使用它。


这可能应该以类似的方法发生,例如在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
    

    ...


或者,我实际上宁愿简单地使用property,例如

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
        
    

【讨论】:

谢谢!这似乎行得通。也是的,它是官方实现,这里是链接docs.unity.com/ads/ImplementingRewardedAdsUnity.htm @kpcttobee 哦,男孩..那我很抱歉那部分!有人应该告诉他们..他们在那里的方式确实没有意义 @kpcttobee 实际上通过此处的链接立即报告了它;)希望将来得到修复 他们于 2022 年 1 月 7 日更新了页面,但尚未修复... @H_7 在我报告了文档的问题后,它通过初始化 Awake 中的字段进行了更新;)

以上是关于文档中官方代码上的 Unity3D 无效令牌错误的主要内容,如果未能解决你的问题,请参考以下文章

XSLT 无效令牌导致 XML 文档无效

苹果的错误响应是不是识别无效令牌?

确认电子邮件上的 aspnet 身份无效令牌

.append 上的 Laravel ajax“无效或意外令牌”

Keycloak 抱怨令牌端点上的 redirect_uri 无效

Messenger Chatbot OTN 错误:(#100) 提供的一次性令牌无效