UnityScript を使った古いプロジェクトがお手元にありますか?もしそうであれば、UnityScript を C# に変換する Unity 製のオープンソースな変換ツールをぜひお試しください。こちらのリンクから今すぐダウンロードできます。
2017 年 8 月に発表した記事にある通り、私たちは JavaScript に似たスクリプト言語、UnityScript を廃止するプロセスを開始しました。そして、UnityScript から C# への変換ツールの開発に取り掛かりました。ほどなくして、新しく UnityScript を作成するメニューオプションは Legacy 配下に移されました。
この時以来、私たちは数多くのフィードバックを受け取り、変換ツールに潜んでいた無数の問題を解決してきました。いただいたフィードバックがきっかけとなって実現した変更もいくつかあります。たとえば、以下のような変更です。
Unity 2018.2 で、新しい UnityScript スクリプトを作成するオプションを完全に削除しました。その時点までに、Unity としては変換ツールの要件となる機能が完全に実装され、また動作も十分に安定して、UnityScript を使ったプロジェクトをまだ手元にお持ちの方すべてにこの変換ツールをお使いいただいて問題ないと判断したためです。
変換プロセスを開始する前に、Unity 2018.1 でお手元のプロジェクトが正常にビルドできることと、テストがすべてパスすることを確認し、こちらのレポジトリにリストされている制約に目を通して、その内容を把握されておくことをお勧めします。.
変換ツールは Tools の Convert UnityScript to C# から実行されることをお勧めします。もし、変換中に使われるパラメーターをより細かく制御したい場合は、コマンドラインから変換を実行することもできます。ただし、柔軟性が増す代わりに複雑さも増すので、その点はご了承ください。
例として、下の動画で旧バージョンの『Angry Bots』プロジェクトの変換プロセスの概要を説明しています。この動画はあくまでデモ目的で作られたものであることにご注意ください。動画では Unity 2018.1 で最初にプロジェクトを開いたときにコンパイルエラーとなったコードをコメントアウトして対処していますが、実際のプロジェクトでは適切な修正を施す必要があります。
変換の基本的なプロセスは次のようにまとめられます。
変換対象のプロジェクトが複数のプラットフォームをターゲットにしている場合は、上記の手順 8 を各ターゲットプラットフォームをに対して繰り返す必要があります。このとき、変換ツールを実行する前にターゲットプラットフォームを切り替えてください。また、変換されたコードを手動でプラットフォーム別に条件分岐コードでラップしてください。これは変換ツールの持つ制約です。このような作業を行う必要がある場合は、変換を行うたびにプロジェクトの状態を復元できるよう、バージョン管理システム(VCS)を使うことも検討してください。 |
上記の手順 9 は実施する必要がない場合もあります。これはプロジェクトでどの API が使われているかによります。『Angry Bots』の例では、私たちは API が使われている部分をいくつか修正する必要がありました。
変換ツールはオープンソースですので、自由にソースをダウンロードして、内容をご覧いただくことができます。もちろん、修正や改善に貢献していただくことは大歓迎です。
何らかの理由でこの変換ツールが必要な要件を満たしていないと判断された場合は、アセットストアで他の変換ツールを探してみてください。
最後に、こちらの変換ツールについて困ったことがある場合は、こちらのフォーラムスレッドまでお問い合わせください。可能な限り支援させていただきます。