웹 템플릿을 사용하여 웹 빌드를 설정하고 상호 작용합니다.
템플릿 변수, JavaScript 매크로, 조건부 지시문에 대한 자세한 내용은 웹 템플릿 변수를 참조하십시오.
설정 오브젝트에는 코드 및 데이터 URL, 제품 이름, 회사 이름, 버전으로 구성된 빌드 설정이 포함됩니다. 설정 오브젝트는 다음 코드를 사용하여 정의할 수 있습니다.
var buildUrl = "Build";
var config = {
dataUrl: buildUrl + "/{{{ DATA_FILENAME }}}",
frameworkUrl: buildUrl + "/{{{ FRAMEWORK_FILENAME }}}",
codeUrl: buildUrl + "/{{{ CODE_FILENAME }}}",
#if MEMORY_FILENAME
memoryUrl: buildUrl + "/{{{ MEMORY_FILENAME }}}",
#endif
#if SYMBOLS_FILENAME
symbolsUrl: buildUrl + "/{{{ SYMBOLS_FILENAME }}}",
#endif
streamingAssetsUrl: "StreamingAssets",
companyName: "{{{ COMPANY_NAME }}}",
productName: "{{{ PRODUCT_NAME }}}",
productVersion: "{{{ PRODUCT_VERSION }}}",
// additional options can go here, see below
};
위 예시에서 빌드 폴더 URL은 buildUrl이라는 별도의 변수로 저장됩니다. 이는 호스팅 서버의 임베딩 페이지와 빌드 폴더 간의 관계를 모르는 경우에 유용합니다. 이를 통해 다른 HTML 문서에서 임베딩 코드를 재사용할 수 있습니다. 이를 사용하는 경우의 예로는 Build 폴더를 서버의 다른 위치로 이동하는 경우를 들 수 있습니다. 임베딩 페이지에서 buildUrl 변수의 값을 조정하고 동일한 임베딩 코드를 사용할 수 있습니다. 이는 StreamingAssets 폴더(streamingAssetsUrl)에도 적용됩니다.
빌드의 URL과 필드 이름을 설정하는 것 외에도 다음 프로퍼티를 config 오브젝트에 설정할 수 있습니다.
| 프로퍼티 | 용도 |
|---|---|
matchWebGLToCanvasSize: false |
기본적으로(true 또는 unset로 설정된 경우) Unity는__ WebGL__웹 브라우저에서 2D 및 3D 그래픽스를 렌더링하는 JavaScript API입니다. Unity 웹 빌드 옵션을 사용하면 콘텐츠를 JavaScript 프로그램으로 퍼블리시할 수 있습니다. 이 프로그램은 HTML5 기술과 WebGL 렌더링 API를 사용하여 Unity 콘텐츠를 웹 브라우저에서 실행합니다. 자세한 정보 See in Glossary 캔버스 렌더 타겟 크기를 캔버스 요소의 DOM(문서 오브젝트 모델) 크기( window.devicePixelRatio에 따라 조정)와 동기화합니다. 캔버스 DOM 크기와 WebGL 렌더 타겟 크기를 수동으로 설정하려면 false로 설정합니다. |
devicePixelRatio: <number> |
이 필드는 렌더링된 페이지의 DPI 스케일링 비율을 강제로 설정합니다. 1로 설정하면 렌더링을 ‘표준 DPI’(또는 레티나가 아닌 DPI)로 강제 적용하여 저사양 모바일 기기의 성능을 개선할 수 있습니다. 이 필드는 기본적으로 설정되어 있지 않아 렌더링된 페이지가 브라우저 DPR 스케일링 비율을 사용하므로 높은 DPI 렌더링이 발생합니다. |
autoSyncPersistentDataPath: true |
true로 설정하면 Unity Application.persistentDataPath 디렉토리의 모든 파일 쓰기가 자동으로 유지되므로 사용자가 다음 번에 웹사이트를 방문할 때도 기존에 저장된 콘텐츠가 유지됩니다. 설정되지 않은 경우(또는 false로 설정된 경우) JS_FileSystem_Sync() JavaScript 함수를 호출하여 Application.persistentDataPath 디렉토리 내에서 파일 수정 내용을 수동으로 동기화해야 합니다. |
빌드가 성공적으로 인스턴스화되면 Promise 오브젝트의 이행 핸들러 콜백이 새로 생성된 Unity 인스턴스 오브젝트를 인수로 수신합니다. 빌드와 상호 작용하려면 Unity 인스턴스의 다음 메서드를 호출합니다.
| 메서드 | 용도 |
|---|---|
unityInstance.SetFullscreen(fullscreen) |
SetFullscreen 메서드는 전체 화면 모드를 토글합니다. 이 메서드는 값을 반환하지 않습니다. 참고: 전체 화면 모드를 활성화하려면 버튼이나 키를 누르는 등의 사용자 상호 작용을 사용해야 합니다. 시작 시 전체 화면 모드를 활성화할 수 없습니다. - 전체 화면 모드를 활성화하려면 fullscreen 인수를 1로 설정합니다. - 전체 화면 모드를 종료하려면 fullscreen 인수를 0으로 설정합니다. |
unityInstance.SendMessage(objectName, methodName, value) |
SendMessage 메서드는 메시지를 게임 오브젝트로 전송합니다. 이 메서드는 값을 반환하지 않습니다. - objectName은 씬에 있는 오브젝트의 이름입니다. - methodName은 현재 해당 오브젝트에 연결된 스크립트의 메서드 이름입니다. - value는 문자열이나 숫자일 수도 있고 비어 있을 수도 있습니다. |
unityInstance.Quit().then(onQuit) |
Quit() 메서드를 사용하여 런타임을 종료하고 Unity 인스턴스에서 사용하는 메모리를 정리합니다. 이 메서드는 Promise 오브젝트를 반환합니다. 참고: 일부 브라우저 애드온은 unityInstance.Quit() 호출 후 웹 페이지에서 Unity 콘텐츠를 다시 가져오는 가비지 컬렉터의 기능을 방해합니다. 브라우저 애드온을 비활성화하여 문제를 해결하거나 <iframe>: 인라인 프레임 요소에 대한 Mozilla 기술 자료를 참조하여 애드온이 활성화된 Unity 애플리케이션을 종료하고 언로드하십시오.- 빌드 런타임이 종료된 후에 onQuit 콜백이 호출됩니다. |