2011-01-15 11 views
4

Es ist sehr glatt und Cross-Browser/Plattform auf Knopfdruck, die führenden nicht-technischen Arten zu schließen, dass der gesamte Motor ist eigentlich besser als das, was wir jetzt verwenden. Ist es nur so, dass sie sich die Zeit genommen haben, alle Pro-Browser/OS-Plug-in-Versionen von Unity WebPlayer zu implementieren und zu verbessern, oder gibt es etwas tiefer in der Art und Weise, wie die Engine-Architektur eingerichtet wird?Wie funktioniert die Web-Bereitstellung von Unity3D?

Antwort

6

Unity nimmt Skripte in C#, UnityScript (basierend auf JavaScript) oder Boo (basierend auf Python) und kompiliert sie in Mono-Assemblies. Diese Assemblys + die 3D-Modelle, Sounds und Texturen, die von Ihrem Spiel benötigt werden, werden in eine .unity3d-Datei komprimiert, die von ihrem Browser-Plugin geladen wird. Da fast die ganze Spiellogik in verwalteten Mono-Assemblys ist, läuft sie plattformübergreifend mit sehr wenigen plattformspezifischen Eigenheiten.

Sie haben kürzlich ihren Plug-in-Erkennungs- und Installationscode umgeschrieben, sodass es sehr einfach ist, einen JavaScript-Block in eine Webseite einzufügen, die Unity-Inhalte anzeigt, wenn der Benutzer das Plugin oder andere Inhalte (Bild, Flash, Video), wenn sie es nicht tun. Ich glaube, dass ihr Plugin alle A-Klassen-Browser auf Mac und Windows unterstützt, und das Plugin kann installiert werden, ohne den Browser neu zu starten.

Ein Vorteil der Unity-Engine besteht darin, dass Sie eine große Anzahl von verwaltbaren Standardanfertigungen aufnehmen und in Ihr Projekt einbinden und aus dem Unity-Code aufrufen können. Aber Sie müssen sich bewusst sein, dass diese Assemblies wirklich die Größe der .unity3d-Datei aufblähen können.

Ein weiterer Vorteil ist, dass Sie einfach Komponenten schreiben können, die einstellbare Parameter offen legen, die von nicht-technischen Personen geändert werden können.

Und noch ein weiterer Vorteil ist, dass ein gut geschriebenes Projekt in weniger als einem Tag auf iPhone, Standalone, Android, Web usw. portiert werden kann. Ich habe persönlich iPhone zu Web gemacht, indem ich nur meinen Eingabehandler änderte und Texturkomprimierung änderte.

Ein großer Nachteil ist, dass es für eine neugierige oder böswillige Person nicht schwierig ist, die Assemblies in vollständig lesbaren Code zu dekompilieren, da die Anwendung verwalteten Code ausführt. Du musst also darüber nachdenken, was jemand mit dieser Information machen könnte (Cheat im Multiplayer, schreibe Bots, verfälsche Highscores, etc.). Es ist möglich, Ihre Assemblys zu verschleiern, aber es ist nicht trivial, diesen Schritt zu Ihrem Build-Prozess hinzuzufügen.