You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity WebGL构建报错:Unexpected token operator (>) 求解

Unity WebGL 中「unexpected token operator >」错误解决办法

出现这个错误的核心原因是:Unity WebGL 默认使用ES5版本的JavaScript环境,不支持ES6引入的箭头函数(=>)语法,浏览器解析时会把=>识别成非法运算符,从而报错。

解决办法很简单:把代码中所有箭头函数替换成传统的function函数写法即可,你自己改写的LoadStats方法是完全正确的,下面是完整的修正后代码:

mergeInto(LibraryManager.library, {

  SaveStats : function (data) {
    var dataString = UTF8ToString(data);
    var obj = JSON.parse(dataString);
    player.setData(obj);
  },

  LoadStats : function(){
    player.getData().then(function(_date){
      const myJSON = JSON.stringify(_date);
      Game.SendMessage('Progress', 'Load', myJSON);
    });
  },

  SetToLeaderBoard: function (value) {
    ysdk.getLeaderboards()
    .then(function(lb) {
      lb.setLeaderboardScore('Points', value);
    });
  },

  ShowAd : function(){
    ysdk.adv.showFullscreenAdv({
      callbacks: {
        onClose: function(wasShown) {
          console.log("-----closed------")
        },
        onError: function(error) {
          // some action on error
        }
      }
    })
  },

  ShowRewardedAd : function(){
    ysdk.adv.showRewardedVideo({
      callbacks: {
        onOpen: function() {
          console.log('Video ad open.');
        },
        onRewarded: function() {
          console.log('Rewarded!');
          Game.SendMessage("Canvas","AddDollars");
        },
        onClose: function() {
          console.log('Video ad closed.');
        }, 
        onError: function(e) {
          console.log('Error while open video ad:', e);
        }
      }
    })
  },

  ShowAdRiviwe : function(){
    ysdk.adv.showRewardedVideo({
      callbacks: {
        onOpen: function() {
          console.log('Video ad open.');
        },
        onRewarded: function() {
          console.log('Rewarded!');
          Game.SendMessage("Scripts","UnLose");
        },
        onClose: function() {
          console.log('Video ad closed.');
        }, 
        onError: function(e) {
          console.log('Error while open video ad:', e);
        }
      }
    })
  },

  GetLang: function () {
    var lang = ysdk.environment.i18n.lang;
    var bufferSize = lengthBytesUTF8(lang) + 1;
    var buffer = _malloc(bufferSize);
    stringToUTF8(lang, buffer, bufferSize);
    return buffer;
  },

});

关键替换规则:

  • 无参数箭头函数() => { ... } → 替换为 function() { ... }
  • 带单个参数的箭头函数(param) => { ... }或param => { ... } → 替换为 function(param) { ... }

替换后代码完全兼容Unity WebGL的ES5环境,不会再出现语法解析错误。

内容的提问来源于stack exchange,提问作者Aliri Games

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 00:23:14