From 9363d1544753f549e6f506189975f50c25e15d20 Mon Sep 17 00:00:00 2001 From: Martin Vagstad Date: Fri, 19 Dec 2025 10:33:28 +0100 Subject: [PATCH] Fix Unity 6 WebGL compatibility by replacing deprecated dynCall with makeDynCall Unity 6 uses a newer Emscripten version where Module.dynCall_* functions are deprecated and cause "RuntimeError: function signature mismatch" crashes on WebGL builds. This replaces all dynCall invocations with the new makeDynCall syntax as per Unity's official guidance: https://docs.unity3d.com/6000.0/Documentation/Manual/web-interacting-browser-deprecated.html Changes: - onOpen callback: dynCall_vi -> makeDynCall('vi', ...) - onMessage callback (2x): dynCall_viii -> makeDynCall('viii', ...) - onError callback: dynCall_vii -> makeDynCall('vii', ...) - onClose callback: dynCall_vii -> makeDynCall('vii', ...) --- NativeWebSocket/Assets/WebSocket/WebSocket.jslib | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/NativeWebSocket/Assets/WebSocket/WebSocket.jslib b/NativeWebSocket/Assets/WebSocket/WebSocket.jslib index 9d8e42f..8bdf346 100644 --- a/NativeWebSocket/Assets/WebSocket/WebSocket.jslib +++ b/NativeWebSocket/Assets/WebSocket/WebSocket.jslib @@ -150,7 +150,7 @@ var LibraryWebSocket = { console.log("[JSLIB WebSocket] Connected."); if (webSocketState.onOpen) - Module.dynCall_vi(webSocketState.onOpen, instanceId); + {{{ makeDynCall('vi', 'webSocketState.onOpen') }}}(instanceId); }; @@ -170,7 +170,7 @@ var LibraryWebSocket = { HEAPU8.set(dataBuffer, buffer); try { - Module.dynCall_viii(webSocketState.onMessage, instanceId, buffer, dataBuffer.length); + {{{ makeDynCall('viii', 'webSocketState.onMessage') }}}(instanceId, buffer, dataBuffer.length); } finally { _free(buffer); } @@ -182,7 +182,7 @@ var LibraryWebSocket = { HEAPU8.set(dataBuffer, buffer); try { - Module.dynCall_viii(webSocketState.onMessage, instanceId, buffer, dataBuffer.length); + {{{ makeDynCall('viii', 'webSocketState.onMessage') }}}(instanceId, buffer, dataBuffer.length); } finally { _free(buffer); } @@ -204,7 +204,7 @@ var LibraryWebSocket = { stringToUTF8(msg, buffer, length); try { - Module.dynCall_vii(webSocketState.onError, instanceId, buffer); + {{{ makeDynCall('vii', 'webSocketState.onError') }}}(instanceId, buffer); } finally { _free(buffer); } @@ -219,7 +219,7 @@ var LibraryWebSocket = { console.log("[JSLIB WebSocket] Closed."); if (webSocketState.onClose) - Module.dynCall_vii(webSocketState.onClose, instanceId, ev.code); + {{{ makeDynCall('vii', 'webSocketState.onClose') }}}(instanceId, ev.code); delete instance.ws;