| <!DOCTYPE html> |
| <html lang="en-us"> |
|
|
| <head> |
| <base href="https://cdn.jsdelivr.net/gh/genizy/web-port@master/ultrakill/"> |
| <meta charset="utf-8"> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <title>Unity WebGL Player | ULTRAKILL</title> |
| <style> |
| html, |
| body { |
| margin: 0; |
| padding: 0; |
| overflow: hidden; |
| height: 100%; |
| width: 100%; |
| } |
| |
| #unity-container { |
| width: 100%; |
| height: 100%; |
| position: fixed; |
| top: 0; |
| left: 0; |
| } |
| #sidebarad1, |
| #sidebarad2 { |
| position: fixed; |
| top: 50%; |
| transform: translateY(-50%); |
| width: 160px; |
| height: 600px; |
| padding: 0; |
| margin: 0; |
| z-index: 999999; |
| } |
| #sidebarad1 { |
| left: 0; |
| } |
| #sidebarad2 { |
| right: 0; |
| } |
| .sidebar-close { |
| position: absolute; |
| top: 0; |
| right: 0; |
| width: 22px; |
| height: 22px; |
| line-height: 22px; |
| text-align: center; |
| background: rgba(0,0,0,0.7); |
| color: #fff; |
| font-size: 14px; |
| cursor: pointer; |
| user-select: none; |
| z-index: 10; |
| } |
| .sidebar-frame { |
| width: 160px; |
| height: 600px; |
| border: none; |
| display: block; |
| } |
| </style> |
| </head> |
|
|
| <body style="text-align: center; padding: 0; border: 0; margin: 0;"> |
| <div id='loading-text' style="color: black; font-family: cursive; font-size: 48px; text-align: center; margin-top: 20px;">LOADING...</div> |
| <canvas id="unity-canvas" tabindex="-1" hidden></canvas> |
| <script src="Build/ultrakill.loader.js"></script> |
| <script> |
| var canvas = document.querySelector("#unity-canvas"); |
| if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) { |
| |
| var meta = document.createElement('meta'); |
| meta.name = 'viewport'; |
| meta.content = 'width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, shrink-to-fit=yes'; |
| document.getElementsByTagName('head')[0].appendChild(meta); |
| canvas.style.width = "100%"; |
| canvas.style.height = "100%"; |
| canvas.style.position = "fixed"; |
| document.body.style.textAlign = "left"; |
| } else { |
| function resizeCanvas() { |
| canvas.width = window.innerWidth; |
| canvas.height = window.innerHeight; |
| canvas.style.width = window.innerWidth + "px"; |
| canvas.style.height = window.innerHeight + "px"; |
| } |
| resizeCanvas(); |
| window.addEventListener('resize', resizeCanvas); |
| } |
| |
| function mergeFiles(fileParts) { |
| return new Promise((resolve, reject) => { |
| let buffers = []; |
| |
| function fetchPart(index) { |
| if (index >= fileParts.length) { |
| let mergedBlob = new Blob(buffers); |
| let mergedFileUrl = URL.createObjectURL(mergedBlob); |
| resolve(mergedFileUrl); |
| return; |
| } |
| fetch(fileParts[index]).then((response) => response.arrayBuffer()).then((data) => { |
| buffers.push(data); |
| fetchPart(index + 1); |
| }).catch(reject); |
| } |
| fetchPart(0); |
| }); |
| } |
| |
| function getParts(file, start, end) { |
| let parts = []; |
| for (let i = start; i <= end; i++) { |
| parts.push(file + ".part" + i); |
| } |
| return parts; |
| } |
| Promise.all([ |
| mergeFiles(getParts("Build/ultrakill.data.unityweb", 1, 4)), |
| mergeFiles(getParts("Build/ultrakill.wasm.unityweb", 1, 2)) |
| ]).then(([dataUrl, wasmurl]) => { |
| document.querySelector("#unity-canvas").hidden = false; |
| createUnityInstance(document.querySelector("#unity-canvas"), { |
| dataUrl: dataUrl, |
| frameworkUrl: "Build/ultrakill.framework.js.unityweb", |
| codeUrl: wasmurl, |
| streamingAssetsUrl: "StreamingAssets", |
| companyName: "Hakita and Cake Logic", |
| productName: "ULTRAKILL", |
| productVersion: "1.4", |
| |
| |
| }).then((e) => { |
| document.querySelector("#loading-text").remove(); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |