-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
130 lines (123 loc) · 4.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity WebGL Player | BlocksWorld</title>
<link rel="shortcut icon" href="TemplateData/favicon.ico">
<link rel="stylesheet" href="TemplateData/style.css">
<script src="TemplateData/aws-sdk-2.709.0.min.js"></script>
</head>
<body>
<div id="unity-container" class="unity-desktop">
<canvas id="unity-canvas" width=960 height=600></canvas>
<div id="unity-loading-bar">
<div id="unity-logo"></div>
<div id="unity-progress-bar-empty">
<div id="unity-progress-bar-full"></div>
</div>
</div>
<div id="unity-mobile-warning">
WebGL builds are not supported on mobile devices.
</div>
<div id="unity-footer">
<div id="unity-webgl-logo"></div>
<div id="unity-fullscreen-button"></div>
<div id="unity-build-title">BlocksWorld</div>
</div>
</div>
<script>
var buildUrl = "Build";
var loaderUrl = buildUrl + "/WebDiana.loader.js";
var config = {
dataUrl: buildUrl + "/WebDiana.data",
frameworkUrl: buildUrl + "/WebDiana.framework.js",
codeUrl: buildUrl + "/WebDiana.wasm",
streamingAssetsUrl: "StreamingAssets",
companyName: "CwC CSU",
productName: "BlocksWorld",
productVersion: "0.1",
};
var container = document.querySelector("#unity-container");
var canvas = document.querySelector("#unity-canvas");
var loadingBar = document.querySelector("#unity-loading-bar");
var progressBarFull = document.querySelector("#unity-progress-bar-full");
var fullscreenButton = document.querySelector("#unity-fullscreen-button");
var mobileWarning = document.querySelector("#unity-mobile-warning");
// By default Unity keeps WebGL canvas render target size matched with
// the DOM size of the canvas element (scaled by window.devicePixelRatio)
// Set this to false if you want to decouple this synchronization from
// happening inside the engine, and you would instead like to size up
// the canvas DOM size and WebGL render target sizes yourself.
// config.matchWebGLToCanvasSize = false;
if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
container.className = "unity-mobile";
// Avoid draining fillrate performance on mobile devices,
// and default/override low DPI mode on mobile browsers.
config.devicePixelRatio = 1;
mobileWarning.style.display = "block";
setTimeout(() => {
mobileWarning.style.display = "none";
}, 5000);
} else {
canvas.style.width = "960px";
canvas.style.height = "600px";
}
loadingBar.style.display = "block";
var script = document.createElement("script");
var unityInstance;
script.src = loaderUrl;
script.onload = () => {
createUnityInstance(canvas, config, (progress) => {
progressBarFull.style.width = 100 * progress + "%";
}).then((UI) => {
unityInstance = UI;
loadingBar.style.display = "none";
fullscreenButton.onclick = () => {
UI.SetFullscreen(1);
};
}).catch((message) => {
alert(message);
});
};
document.body.appendChild(script);
//set up webspeechrecognition
var recognition = new webkitSpeechRecognition();
recognition.continuous = true;
recognition.interimResults = false; // TODO: set user:isSpeaking true for interim results
recognition.onstart = function () {
console.log('Speech recognition started.');
};
recognition.onerror = function (event) {
console.log('Speech recognition error: ' + event.error);
};
recognition.onend = function () {
console.log('Speech recognition ended.');
};
recognition.onresult = function (event) {
if (typeof (event.results) == 'undefined') {
recognition.onend = null;
recognition.stop();
return;
}
for (var i = event.resultIndex; i < event.results.length; ++i) {
if (event.results[i].isFinal) {
final_transcript += event.results[i][0].transcript;
}
}
console.log('Speech recognized: ' + final_transcript);
unityInstance.SendMessage("UserSpeechModule", "SetSpeech", final_transcript);
final_transcript = '';
};
//start webspeechrecognition
final_transcript = '';
recognition.lang = 'en-US'; // TODO: make this configurable
recognition.start();
</script>
<div id="audio-div" style="display: none">
<audio id="audio-playback" crossorigin=anonymous>
<source id="audio-source" type="audio/ogg" src="">
</audio>
</div>
</body>
</html>