Author Topic: Unity web player a C# skripty  (Read 375 times)

Kockatá hlava

  • Junior Member
  • ***
  • Posts: 134
  • n00b
    • x86asm.net
Unity web player a C# skripty
« on: March 06, 2015, 04:05:26 PM »
Nemáte náhodou někdo zkušenost s tím, jak funguje Unity web player? Unity je game engine, skriptovatelnej v C#. Web player je plugin do browseru, kterej stáhne balík, kde je CLR DLL s kódem hry. Zajímavý je, že když attachnu debugger k browseru, vidím tam sice moduly toho web playeru, ale už ne modul s kódem hry. Ten se vždycky jmenuje Assembly-Csharp.dll.

Mám takový podezření, že ten kód z Assembly-Csharp.dll ten web player napřed skompiluje do nativního kódu a až ten potom spustí. To je rozdíl oproti tomu, jak Unity funguje třeba na Androidu, tam je klasickej jitter. Toto vypadá spíš jako varianta AOT.

Můžete to zkusit třeba na ukázkové hře (je jenom v malým okýnku; pokud ji chcete normálně hrát, je potřeba tam někde zapnout fullscreen):

http://unity3d.com/showcase/live-demos#angrybots

Po instalaci toho web playeru, spuštění hry v browseru a attachnutí debuggeru jsou vidět naloadovaný tyhle moduly web playeru:

%userprofile%\AppData\LocalLow\Unity\WebPlayer\:
 loader\npUnity3D32.dll
 loader\UnityWebPluginAX.ocx
 mono\Release3.x.x\mono-1-vc.dll
 player\Release3.x.x\webplayer_win.dll

Pokud ten web player spustíte přes Internet Explorer, samotnej balík se souborama hry se stáhne někam do Temporary Internet Files, je to soubor s koncovkou .unity3d.
« Last Edit: March 06, 2015, 04:37:16 PM by MazeGen »

NeptuN

  • I'd be forever young
  • Junior Member
  • ***
  • Posts: 158
Re: Unity web player a C# skripty
« Reply #1 on: March 06, 2015, 06:33:36 PM »
Osobne zkusenost s Unity nemam, neni ale mozne, ze ten kod hry bezi v tom Unity interpretu jako oddeleny proces? Jestli to chapu spravne, tak tyhle game enginy jako Unreal, Unity, ale treba i 'jen' 3D modelovaci prostredi jako Blender jsou vlastne jen interprety, ne? Webovy prohlizec pomoci pluginu jen ziska zpusob, jak s tim interpretem komunikovat - tj. preda vstup z klavesnice, poskytne platno a par tlacitek jako pause atd. Ja bych si tipnul, ze hra bezi ve virtualni masine te Unity v oddelenem procesu - proto ten modul nevidis.
Knowledges are powerful weapon

Kockatá hlava

  • Junior Member
  • ***
  • Posts: 134
  • n00b
    • x86asm.net
Re: Unity web player a C# skripty
« Reply #2 on: March 07, 2015, 05:25:22 AM »
Už to nejspíš mám. Ta mono-1-vc.dll si ten kód natahuje sama takhle:

https://github.com/Unity-Technologies/mono/blob/unity-staging/mono/metadata/assembly.c#L2468

Stejně díky za odpověď.