| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- (function(){
- console.log('Responsive WebGL Template by SIMMER.io v2019.02.08');
- console.log('Available at: https://assetstore.unity.com/packages/tools/gui/responsive-webgl-template-117308 for free!');
- console.log('Host your WebGL Game at SIMMER.io for free!');
- const q = (selector) => document.querySelector(selector);
- const gameContainer = q('#gameContainer');
- const initialDimensions = {width: parseInt(gameContainer.style.width, 10), height: parseInt(gameContainer.style.height, 10)};
- gameContainer.style.width = '100%';
- gameContainer.style.height = '100%';
- let gCanvasElement = null;
- const getCanvasFromMutationsList = (mutationsList) => {
- for (let mutationItem of mutationsList){
- for (let addedNode of mutationItem.addedNodes){
- if (addedNode.id === '#canvas'){
- return addedNode;
- }
- }
- }
- return null;
- }
- const setDimensions = () => {
- gameContainer.style.position = 'absolute';
- gCanvasElement.style.display = 'none';
- var winW = parseInt(window.getComputedStyle(gameContainer).width, 10);
- var winH = parseInt(window.getComputedStyle(gameContainer).height, 10);
- var scale = Math.min(winW / initialDimensions.width, winH / initialDimensions.height);
- gCanvasElement.style.display = '';
- gCanvasElement.style.width = 'auto';
- gCanvasElement.style.height = 'auto';
- var fitW = Math.round(initialDimensions.width * scale * 100) / 100;
- var fitH = Math.round(initialDimensions.height * scale * 100) / 100;
- gCanvasElement.setAttribute('width', fitW);
- gCanvasElement.setAttribute('height', fitH);
- }
- window.setDimensions = setDimensions;
- const registerCanvasWatcher = () => {
- let debounceTimeout = null;
- const debouncedSetDimensions = () => {
- if (debounceTimeout !== null) {
- clearTimeout(debounceTimeout);
- }
- debounceTimeout = setTimeout(setDimensions, 200);
- }
- window.addEventListener('resize', debouncedSetDimensions, false);
- setDimensions();
- }
- window.UnityLoader.Error.handler = function () { }
- const i = 0;
- new MutationObserver(function (mutationsList) {
- const canvas = getCanvasFromMutationsList(mutationsList)
- if (canvas){
- gCanvasElement = canvas;
- registerCanvasWatcher();
- new MutationObserver(function (attributesMutation) {
- this.disconnect();
- setTimeout(setDimensions, 1)
- q('.simmer').classList.add('hide');
- }).observe(canvas, {attributes:true});
- this.disconnect();
- }
- }).observe(gameContainer, {childList:true});
- })();
|