Unity ホット アップデート C# (コンパイル言語) と lua (インタープリター言語) の比較

1. C#(コンパイル言語)とlua(インタプリタ言語)の比較

ここに画像の説明を挿入

2.ホットアップデート内容

ホット アップデートには、コードとリソースが含まれます。コードには、C#コードとluaコードが含まれます。リソースには、構成テーブル、プリセット、音楽と効果音、アニメーション、フォント、画像、素材などが含まれます。
ここに画像の説明を挿入

3. C# ホット アップデート

Unity のデフォルトの開発言語は C# であり、作成した C# コードは最終的に dll にコンパイルされ、Unity エンジンによって読み込まれます。したがって、C# コードの一部を独立した dll にコンパイルし、それを Web サーバーにアップロードし、ゲームの開始時にサーバーから dll ファイルをダウンロードし、実行時に dll をリロードして、ホットの目的を達成することができます。更新しますが、この方法が使用されます.ゴーストは、リロードした dll のコードがウイルスであるかどうかを知っているため、危険な操作と見なされます.プロジェクトがアプリ市場に出された場合、この種の dll のホット アップデート操作を使用すると、ほとんどの場合、アプリ市場によって違法な操作と見なされます。
ここに画像の説明を挿入

4.Luaホットフィックス

ゲームのホットアップデートといえばluaですが、luaの言語は実行時に動的に解釈され、実行されていないときは通常のテキストファイルであり、リソースファイルとみなすことができます。そのため、Lua コードのホット アップデートはリソースのホット アップデートと本質的に同じですが、通常は AssetBundle としてパッケージ化されて Web サーバーに配置され、クライアントは最新の AssetBundle を Web サーバーからローカルにダウンロードします。

tolua、xlua、ulua、sluaなど、多くのluaフレームワークが市場に出回っています.本質は、lua仮想マシン(c言語で実装された仮想マシン)をUnity環境に埋め込むことです.ゲームが実行されているとき, lua スクリプトは動的に解析および実行されるため、lua を使用していくつかのロジックを実装し、Web サーバーを介して lua スクリプトをダウンロードできます (通常、lua ソース コードは暗号化されてから AssetBundle ファイルに入力されるか、luac を使用してコンパイルされます)。ホット アップデートの目的を達成するために、lua ソース コードをバイトコードに変換してから AssetBundle ファイルに変換します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_45136016/article/details/129448898