일반적으로__ WebGL__웹 브라우저에서 2D 및 3D 그래픽스를 렌더링하는 JavaScript API입니다. Unity 웹 빌드 옵션을 사용하면 콘텐츠를 JavaScript 프로그램으로 퍼블리시할 수 있습니다. 이 프로그램은 HTML5 기술과 WebGL 렌더링 API를 사용하여 Unity 콘텐츠를 웹 브라우저에서 실행합니다. 자세한 정보
See in Glossary 그래픽스 API는 하드웨어 가속 렌더링에 GPU를 사용하므로 웹 성능은 GPU의 네이티브 앱과 비슷합니다. 유일한 예외는 WebGL API 호출과 셰이더를 OS 그래픽스 API(일반적으로 Windows에서는 DirectX, Mac 및 Linux에서는 OpenGL)로 변환하는 데 약간의 부하가 발생하는 것입니다.
CPU에서 Emscripten은 코드를 WebAssembly로 변환하며 해당 성능은 사용 중인 웹 브라우저에 따라 다릅니다.
다음 사항에 유의하십시오.
팁: Unity가 웹이 아닌 플랫폼의 다른 스레드에 작업을 배포하는 방법에 대해 알아보려면 Unity의 새로운 타임라인 프로파일러를 참조하십시오.
성능을 개선하려면 Other Settings > Stack Trace를 확장하여 웹용 Player 설정에서 Exception support를 None으로 설정합니다.
웹 플랫폼에서 프로파일러를 사용할 수 있지만, 에디터를 통해 웹으로 빌드된 실행 중인 플레이어에 연결할 수는 없습니다. WebGL API는 통신에 브라우저 측에서 수신되는 연결을 허용하지 않는 WebSocket을 사용하기 때문입니다.
실행 중인 플레이어에 연결하려면 다음과 같이 Autoconnect Profiler 설정을 활성화해야 합니다.
참고: Unity는 웹 애플리케이션용 드로우 콜을 프로파일링할 수 없습니다.
자세한 내용은 데이터 소스에 프로파일러 연결을 참조하십시오.
다음 옵션 중 하나가 활성화된 경우 캔버스 또는 브라우저 창이 포커스를 잃어도 콘텐츠가 계속 실행됩니다.
하지만 일부 브라우저는 배경 탭에서 실행 중인 콘텐츠를 조절할 수 있습니다. 콘텐츠가 있는 탭이 보이지 않으면 대부분의 브라우저에서 콘텐츠가 초당 한 번만 업데이트됩니다. 기본 설정에서는 기본값인 Time.maximumDeltaTime이 1초 미만이므로 Time.time이 평소보다 느리게 진행됩니다.
일부 상황에서는 CPU 사용량을 줄이기 위해 더 낮은 프레임 속도로 웹 콘텐츠를 실행할 수 있습니다. 예를 들어 다른 플랫폼에서는 이렇게 하기 위해 Application.targetFrameRate API를 사용할 수 있습니다.
성능을 조절하지 않으려면 이 API를 기본값 –1로 설정합니다. 그러면 브라우저 렌더 루프에서 애니메이션을 가장 매끄럽게 재생할 수 있도록 프레임 속도가 조정되며, Unity가 목표 프레임 속도를 달성하기 위해 스스로 루프 타이밍을 찾는 것보다 더 나은 결과를 얻을 수도 있습니다.
참고: Unity는 보안상의 이유로 브라우저에서 프레임 속도를 쿼리할 수 없습니다. 따라서 Unity는 모든 브라우저에 60fps의 표시 속도를 가정하고 이 값의 Application.targetFrameRate를 기준으로 합니다.