WebGL builds will require the index.html file to be customised.
An additional .js file to be included next to the customised html file. Download the .js file here
Ensure that this line is added to make websockets work.
window.unityInstance = unityInstance;
Further reading
WebAssembly for security purposes does not have Networking-Capabilities.
Read more here: (https://webassembly.org/docs/security/)
Final script should have this included
script.onload = () => {
createUnityInstance(canvas, config, (progress) => {
progressBarFull.style.width = 100 * progress + "%";
}).then((unityInstance) => {
// !!! IMPORTANT
window.unityInstance = unityInstance; // <-- THIS LINE MUST BE ADDED TO ENSURE WEBSOCKETS WORK!!!
// !!! IMPORTANT
loadingBar.style.display = "none";
fullscreenButton.onclick = () => {
unityInstance.SetFullscreen(1);
};
}).catch((message) => {
alert(message);
});
Unity WebGL requires an event listener to paste from the OS clipboard. Use the following structure in script.onload
.
window.addEventListener('paste', function (e) {
const str = e.clipboardData.getData('text');
window.unityInstance.SendMessage('CanvasExample', 'OnBrowserClipboardPaste', str);
});