Не билдится проект на юнити WebGL c Yandex Game SDK
Не билдится проект на юнити WebGL c Yandex Game SDK
Ошибка 1:
Failed running "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\python.exe" "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc" @"D:\Unity Projects\CarChase\Assets\..\Temp\emcc_arguments.resp"
stdout:
stderr:
D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:272
throw new JS_Parse_Error(message, line, col, pos);
^
TypeError: (intermediate value) is not a function
at new JS_Parse_Error (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:261:21)
at js_error (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:272:15)
at croak (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:742:17)
at token_error (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:749:17)
at unexpected (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:755:17)
at D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1108:25
at maybe_unary (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1209:27)
at expr_ops (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1236:32)
at maybe_conditional (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1240:28)
at maybe_assign (D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1264:28)
at D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\eliminator\node_modules\uglify-js\lib\parse-js.js:1278:28
Traceback (most recent call last):
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc", line 11, in <module>
python_selector.run(__file__)
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\python_selector.py", line 38, in run
sys.exit(run_by_import(filename, main) if on_allowed_version() else run_by_subprocess(filename))
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\python_selector.py", line 13, in run_by_import
return getattr(importlib.import_module(os.path.basename(filename)), main)()
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 1902, in run
wasm_text_target, misc_temp_files, optimizer)
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\emcc.py", line 2442, in do_binaryen
emit_symbol_map=emit_symbol_map)
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\shared.py", line 2236, in minify_wasm_js
js_file = Building.js_optimizer_no_asmjs(js_file, ['noPrintMetadata'] + passes)
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\shared.py", line 2105, in js_optimizer_no_asmjs
subprocess.check_call(NODE_JS + [js_optimizer.JS_OPTIMIZER, filename] + passes, stdout=open(next, 'w'))
File "D:\Unity\2018.4.14f1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten_Win\python\2.7.5.3_64bit\lib\subprocess.py", line 542, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['D:/Unity/2018.4.14f1/Editor/Data\\Tools\\nodejs\\node.exe', '--stack_size=8192', '--max-old-space-size=4096', 'D:\\Unity\\2018.4.14f1\\Editor\\Data\\PlaybackEngines\\WebGLSupport\\BuildTools\\Emscripten\\tools\\js-optimizer.js', 'C:\\Users\\Ulitkin\\AppData\\Local\\Temp\\tmpc2l_c0\\build.bc.o.js.pp.js.mem.js', 'noPrintMetadata', 'AJSDCE', 'minifyWhitespace']' returned non-zero exit status 1
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)
Ошибка 2:
Exception: Failed building WebGL Player.
UnityEditor.WebGL.ProgramUtils.StartProgramChecked (System.Diagnostics.ProcessStartInfo p) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/ProgramUtils.cs:48)
UnityEditor.WebGL.WebGlBuildPostprocessor.EmscriptenLink (BuildPostProcessArgs args, Boolean wasmBuild, System.String sourceFiles, System.String sourceFilesHash) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:432)
UnityEditor.WebGL.WebGlBuildPostprocessor.LinkBuild (BuildPostProcessArgs args) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:482)
UnityEditor.WebGL.WebGlBuildPostprocessor.PostProcess (BuildPostProcessArgs args) (at /Users/builduser/buildslave/unity/build/PlatformDependent/WebGL/Extensions/Unity.WebGL.extensions/BuildPostprocessor.cs:954)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at C:/buildslave/unity/build/Editor/Mono/Modules/DefaultBuildPostprocessor.cs:27)
UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:286)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)
Код на C#:
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.SceneManagement;
[System.Serializable]
public class PlayerInfo
{
public int highScore;
public int currentItem;
public int money;
public float musicVolume;
public float SoundVolume;
public List<int> LockState = new List<int>();
}
public class SaveToCloud : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void SaveExtern(string date);
[DllImport("__Internal")]
private static extern void LoadExtern();
public PlayerInfo PlayerInfo;
public static SaveToCloud Instance;
public ECCShop shopMenu;
private void Awake()
{
if (Instance == null)
{
Instance = this;
#if !UNITY_EDITOR && UNITY_WEBGL
LoadExtern();
#endif
}
else
Destroy(gameObject);
}
public void Save()
{
PlayerInfo.highScore = PlayerPrefs.GetInt(SceneManager.GetActiveScene().name + "HighScore");
PlayerInfo.currentItem = PlayerPrefs.GetInt(shopMenu.currentPlayerprefs);
PlayerInfo.money = PlayerPrefs.GetInt("Money");
PlayerInfo.musicVolume = PlayerPrefs.GetFloat("MusicVolume");
PlayerInfo.SoundVolume = PlayerPrefs.GetFloat("SoundVolume");
for (int i = 0; i >= shopMenu.items.Length; i++)
PlayerInfo.LockState.Add(shopMenu.items[i].lockState);
string jsonString = JsonUtility.ToJson(PlayerInfo);
SaveExtern(jsonString);
}
public void Load(string value)
{
PlayerInfo = JsonUtility.FromJson<PlayerInfo>(value);
PlayerPrefs.SetInt(SceneManager.GetActiveScene().name + "HighScore", PlayerInfo.highScore);
PlayerPrefs.SetInt(shopMenu.currentPlayerprefs, PlayerInfo.currentItem);
PlayerPrefs.SetInt("Money", PlayerInfo.money);
PlayerPrefs.SetFloat("MusicVolume", PlayerInfo.musicVolume);
PlayerPrefs.SetFloat("SoundVolume", PlayerInfo.SoundVolume);
for (int i = 0; i >= shopMenu.items.Length; i++)
shopMenu.items[i].lockState = PlayerInfo.LockState[i];
}
}
Код на JavaScript:
mergeInto(LibraryManager.library, {
RateGame: function () {
ysdk.feedback.canReview()
.then(({ value, reason }) => {
if (value) {
ysdk.feedback.requestReview()
.then(({ feedbackSent }) => {
console.log(feedbackSent);
});
} else {
console.log(reason);
}
});
},
SaveExtern: function(date) {
var dateString = UTF8ToString(date);
var myobj = JSON.parse(dateString);
player.setData(myobj);
},
LoadExtern: function(){
player.getData().then(_date => {
const myJSON = JSON.stringify(_date);
UnityInstance.SendMessage('Yandex', 'Load', myJSON);
});
},
AddMoneyExtern: function(value){
ysdk.adv.showRewardedVideo({
callbacks: {
onOpen: () => {
console.log('Video ad open.');
},
onRewarded: () => {
console.log('Rewarded!');
unityInstance.SendMessage("Yandex", "AddMoney", value);
},
onClose: () => {
console.log('Video ad closed.');
},
onError: (e) => {
console.log('Error while open video ad:', e);
}
}
})
}
});