Unity Web

Ładowanie gier unity na platformie webowej

Written By Coder Matthew

Last updated 6 months ago

1) Wprowadzenie

Platforma Bitfun umożliwia uruchamianie gier stworzonych w Unity bezpośrednio w przeglądarce użytkownika. Gry działają w technologii WebGL, co pozwala na pełne doświadczenie gry, w tym:

  • Renderowanie grafiki 3D/2D w przeglądarce,

  • Obsługę wejścia z klawiatury, myszy i gamepadów,

  • Integrację wyników graczy z leaderboardami,

  • Funkcje pełnoekranowe i resetowania gry.

Unity Web w Bitfun działa w HTML5/JavaScript, gdzie główny canvas i loader są dynamicznie generowane w PHP i JS.

https://learn.unity.com/tutorial/getting-started-with-unity-web

2) Struktura plików gry Unity

Każda gra w Bitfun posiada zestaw plików:

Plik

Opis

game.loader.js

Loader gry, ładuje pozostałe pliki i tworzy instancję Unity

game.data

Dane gry WebGL (grafika, tekstury, assets)

game.framework.js

Silnik Unity WebGL (JavaScript)

game.wasm

Kod gry w formacie WebAssembly

StreamingAssets/

Dodatkowe zasoby gry (np. audio, konfiguracje)

W Bitfun loader i pliki są generowane dynamicznie z bazy danych (games.path).

3) HTML/CSS dla gry

Przykład struktury w Bitfun:

#title-loader – wyświetla komunikat podczas ładowania gry.
.loadingspinner – animacja wczytywania (spinner).
#unity-canvas – właściwy canvas gry, do którego Unity renderuje grafikę.

4) JavaScript – uruchamianie gry

4.1) Konfiguracja Unity

4.2) Ładowanie instancji

createUnityInstance – funkcja dostarczona przez loader Unity WebGL.
Po załadowaniu canvas jest widoczny, a spinnery znikają.
Możliwość włączenia pełnego ekranu za pomocą przycisku.

5) Interakcja z użytkownikiem

Bitfun zapewnia dodatkowe funkcje UI nad canvas:

  1. Reset gry – przycisk location.reload() odświeża stronę i restartuje grę.

  2. Leaderboard – tabela wyników z bazy danych (records), wyświetlana pod grą.

  3. Pomoc – przycisk otwiera formularz wsparcia (support.php).

  4. Full Screen – przycisk przełącza grę w tryb pełnoekranowy (unityInstance.SetFullscreen(1)).

6) Integracja w PHP

Gry są wczytywane dynamicznie z bazy danych:

7) Dobre praktyki

  • Minimalizować rozdzielczość canvas, aby poprawić wydajność.

  • Używać preload spinnerów i komunikatów, by użytkownik wiedział, że gra się ładuje.

  • W przypadku leaderboardów optymalizować zapytania SQL (LIMIT 10).

  • Upewnić się, że wszystkie pliki Unity WebGL są dostępne na serwerze (loader, data, wasm).