[Unity]빌드한 WebGL을 클릭 후 로딩으로 변경하는 방법
unity에서 webGL을 빌드하면 자동으로 파일이 로딩되는데, 로딩을 클릭 후 로딩이 되도록 변경하고 싶습니다.
Unity:Web에 내장된 WebGL을 클릭 후 불러오기 코드를 많이 인용했습니다(땀).
unity로 빌드할 때 index.html이 생성되는데, 그 안에 다음과 같은 내용이 있습니다.
var gameInstance = UnityLoader.instantiate("gameContainer", "Build/Datugokusoshi.json", {onProgress : UnityProgress});
이 부분을 다음과 같이 변경한다.
var gameInstance; function loadWebgl() { gameInstance = UnityLoader.instantiate("gameContainer", "Build/Datugokusoshi.json", {onProgress: UnityProgress}); };
}
}
[/code]
‘var gameInstance;’를 함수 밖에서 선언하고 있는데, 인용문을 살펴본 결과 전체 화면으로 표시되지 않는 것은 변수 범위의 문제일지도 모르겠습니다. (직감입니다^^;)
그래서 함수 밖에서 선언하고, loadWebgl을 호출하기 위해 javascript로 클릭하면 loadWebgl을 호출하도록 합니다.
<div id="gameContainer" style="width: 800px; height: 450px;"><div style="width: 800px; height: 450px; background: #eeeeeeee;" onclick="loadWebgl();">클릭하여 청마게</div></div> 클릭
하지만 여기서 문제 발생(눈물)
webgl을 호출하기 전에 전체화면 버튼을 누르면 에러가 난다,,,,
그래서 jquery님의 힘을 빌리기로 했습니다.
head 내에서 먼저 jquery를 불러옵니다. 다운로드하여 직접 서버에 업로드할 수도 있습니다.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
일단 전체화면 버튼을 본 상태에서 지웁니다.
<div style="display: none;" class="fullscreen" onclick="gameInstance.SetFullscreen(1)">< ;/div>
다음으로 아래와 같이 코드를 변경합니다.
var gameInstance; function loadWebgl() { $(".fullscreen").show(); gameInstance = UnityLoader.instantiate("gameContainer", "Build/Datugokusoshi.json", {onProgress: UnityProgress}); } }
‘$(“.fullscreen”).show();’로 지운 전체화면 버튼이 부활합니다.