diff --git a/unity-client/Assets/Plugins/WebGLInput.jslib b/unity-client/Assets/Plugins/WebGLInput.jslib new file mode 100644 index 0000000..5def083 --- /dev/null +++ b/unity-client/Assets/Plugins/WebGLInput.jslib @@ -0,0 +1,38 @@ +var WebGLInput = { + GetURLParam: function(keyPtr) { + var key = UTF8ToString(keyPtr); + var params = new URLSearchParams(window.location.search); + var value = params.get(key) || ''; + var bufferSize = lengthBytesUTF8(value) + 1; + var buffer = _malloc(bufferSize); + stringToUTF8(value, buffer, bufferSize); + return buffer; + }, + + OpenFileDialog: function(acceptPtr, callbackObjPtr, callbackMethodPtr) { + var accept = UTF8ToString(acceptPtr); + var callbackObj = UTF8ToString(callbackObjPtr); + var callbackMethod = UTF8ToString(callbackMethodPtr); + var input = document.createElement('input'); + input.type = 'file'; + input.accept = accept; + input.onchange = function(e) { + var file = e.target.files[0]; + if (!file) return; + var reader = new FileReader(); + reader.onload = function(ev) { + var base64 = ev.target.result.split(',')[1]; + SendMessage(callbackObj, callbackMethod, base64); + }; + reader.readAsDataURL(file); + }; + input.click(); + }, + + SetLoadingProgress: function(progress) { + var bar = document.getElementById('unity-progress-bar-full'); + if (bar) bar.style.width = (progress * 100) + '%'; + } +}; + +mergeInto(LibraryManager.library, WebGLInput);