DLL化について

練習試合で他の人のアルゴリズムと対戦するときに自分の書いたコードを隠したい方はスクリプトのDLL化をおすすめします。

DLL化を行うにはC#でコーディングしている必要があります。

参考: http://terasur.blog.fc2.com/blog-entry-312.html

JavaScriptでコーディングされる方でDLL化を行いたい場合、以下のURLのコンバータを利用してC#化するのが簡便です。

Convert unity javascript (unityscript) to C#: http://files.m2h.nl/js_to_c.php

コンバータを利用して JS -> C# 変換を行う上での注意事項は以下の通りです。

 

1.    変数は全て型を明示的に宣言してください。
2.    Vector2(*,*) は (new Vector2(*,*)) に、Vector3(*,*,*) は (new Vector3(*,*,*)) に全て置換してください。
    正規表現での置換例: Vector3\((.+?),(.+?),(.+?)\) -> \(new Vector3\(\1,\2,\3\)\)
3.    C#のif条件文では int -> bool の変換はされません。
4.    intで宣言した変数にfloatを代入する場合 Mathf.CeilToInt, Mathf.FloorToInt, Mathf.RoundToInt などを利用。
    Mathf.Ceil, Mathf.Round, Mathf.Floor は float を返す。C#ではタイプセーフな変換以外は暗黙の変換不可のためエラー。
    parseIntを変換するとint Parseに変換されるがC#ではParseはstringしか引数をとらない(?)ためエラー。
5.    C#ではArrayクラスを利用することはできません。
    それゆえJSとの公平性からArrayクラスは使用可能クラスの指定から外しています。
6.    変数名にArrayが含まれているとコンバータが勘違いするのかエラーを吐きます。(動作に支障はない?)
7.    変換後はクラス名を.csのファイル名に変更します。
8.    コンバータでエラーなく変換されたとしてもunity側でそのまま動作可能である保証はありません。
    必ず動作確認を行なってください。