Search Unity

Visual Script not working after WebGL export

Discussion in 'Visual Scripting' started by Lemovision, Nov 12, 2021.

  1. Lemovision

    Lemovision

    Joined:
    Apr 6, 2020
    Posts:
    34
    Hi

    I'm working on a project for WebGL platform and have been exporting previous builds with no problem
    Suddenly it's not working anymore and all VS functions don't do anything on the exported build
    There's no problem while running in the editor though and no error in the console or anywhere
    I've been trying to sort this out for the last three days and still have no idea what's going on
    Also tried to disable the VS gameobject and cut all connections but same error in the browser console
    If someone has an idea that would be great to know thanks
    Unity 2021.1 / VS 1.5.2

     
    Last edited: Nov 12, 2021
  2. Lemovision

    Lemovision

    Joined:
    Apr 6, 2020
    Posts:
    34
    Not implemented: Class::FromIl2CppType

    Elephant.framework.js:3338 Failed to log deserialization failure data:
    System.MethodAccessException: Attempt to access method 'System.IDisposable.Dispose' on type 'emsc.emsc' failed.
    at Unity.VisualScripting.SerializationData.ToString (System.String title) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.Serialization.DeserializeInto (Unity.VisualScripting.SerializationData data, System.Object& instance, System.Boolean forceReflected) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.LudiqBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <00000000000000000000000000000000>:0
    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object, Object)
    UnityEngine.Debug:LogWarning(Object, Object)
    Unity.VisualScripting.Serialization:DeserializeInto(SerializationData, Object&, Boolean)
    Unity.VisualScripting.LudiqBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()


    _JS_Log_Dump @ Elephant.framework.js:3338
    Elephant.framework.js:3335 Failed to deserialize behaviour.
    System.Runtime.Serialization.SerializationException: Deserialization into 'Unity.VisualScripting.FlowMachine' failed. ---> System.NullReferenceException: Object reference not set to an instance of an object.
    at System.Text.StringBuilder.get_Capacity () [0x00000] in <00000000000000000000000000000000>:0
    at System.Text.StringBuilder.set_Length (System.Int32 value) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseString (System.String& str) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseObject (Unity.VisualScripting.FullSerializer.fsData& obj) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseObject (Unity.VisualScripting.FullSerializer.fsData& obj) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseArray (Unity.VisualScripting.FullSerializer.fsData& arr) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseObject (Unity.VisualScripting.FullSerializer.fsData& obj) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseObject (Unity.VisualScripting.FullSerializer.fsData& obj) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.TryParseObject (Unity.VisualScripting.FullSerializer.fsData& obj) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.RunParse (Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.Parse (System.String input, Unity.VisualScripting.FullSerializer.fsData& data) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.FullSerializer.fsJsonParser.Parse (System.String input) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.Serialization.PrettyPrint (System.String json) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.SerializationData.ToString (System.String title) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.Serialization.DeserializeInto (Unity.VisualScripting.SerializationData data, System.Object& instance, System.Boolean forceReflected) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.LudiqBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <00000000000000000000000000000000>:0
    --- End of inner exception stack trace ---
    at Unity.VisualScripting.Serialization.DeserializeInto (Unity.VisualScripting.SerializationData data, System.Object& instance, System.Boolean forceReflected) [0x00000] in <00000000000000000000000000000000>:0
    at Unity.VisualScripting.LudiqBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <00000000000000000000000000000000>:0
    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    UnityEngine.Logger:Log(LogType, Object, Object)
    UnityEngine.Debug:LogError(Object, Object)
    Unity.VisualScripting.LudiqBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()


    _JS_Log_Dump @ Elephant.framework.js:3335
    Elephant.framework.js:3342 UnloadTime: 1.500000 ms
     
  3. Lemovision

    Lemovision

    Joined:
    Apr 6, 2020
    Posts:
    34
    Still been stuck for a week, could I get some help please?
    I used Bolt VS for more than a year and never got this export problem
    Works fine in editor and Desktop export, so is it a bug in Visual Scripting/Webgl ?
     
  4. jeanedouard_unity

    jeanedouard_unity

    Unity Technologies

    Joined:
    May 2, 2019
    Posts:
    49
    Hi,

    With this log message it's pretty hard to really know what your problem is.
    First, for the warning "System.MethodAccessException: Attempt to access method 'System.IDisposable.Dispose' on type 'emsc.emsc' failed." do you have some sort of reflection code trying to access this emsc.Dispose() method? It looks like you can't do that.

    Then for the error about the deserialization, besides the null exception error unfortunately I can't really know what's going with just this log. As it looks like it appears on WebGl build only, this is probably an IL2CPP issue. Did you try to deactivate code stripping to see what's going on?
     
  5. Lemovision

    Lemovision

    Joined:
    Apr 6, 2020
    Posts:
    34
    Thanks for the reply
    I actually ended up disassembling the whole project to find the problem
    Apparently wasn't directly a VS problem, but with a plugin (Paint in 3d)
    That plugin seems to crash in a specific condition in WebGL
    And I'm also referencing some methods of the plugin in VS
    So maybe that's why VS also showed up in the errors
    I wish the error log would mention the plugin script or something