uranium / ultrakill.html
hihihi934's picture
Upload ultrakill.html
91646d8 verified
Raw
History Blame Contribute Delete
4.71 kB
<!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)) {
// Mobile device style: fill the whole browser client area with the game canvas:
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",
// matchWebGLToCanvasSize: false, // Uncomment this to separately control WebGL canvas render size and DOM element size.
// devicePixelRatio: 1, // Uncomment this to override low DPI rendering on high DPI displays.
}).then((e) => {
document.querySelector("#loading-text").remove();
});
});
</script>
</body>
</html>