C#スクリプトとJavascriptの相互参照
この参照を正しく行うためには、まず参照を一方向、例えばC#スクリプトからJavascriptをアクセスするまたはその逆方向、に限定する必要がある。二つのクラスが、それぞれ異なる言語で記述されていて、かつ二方向に参照させることは出来ない。
プロジェクトを記述する言語を一つ選ぶこと。もしサードパーティのコンポーネントの場合に完全に独立したものを使用する場合、一番最初にコンパイルされる特別なフォルダにこれらのスクリプトを置く、すなわちStandard Assetsフォルダ、Pro Standard Assetsフォルダ、 またはPluginsフォルダに置いて、かつ参照する側のスクリプトをこれらのフォルダには置かないようにすれば、どの言語で記述されていようとも問題ない。
JavascriptとC#は同じアセンブリにコンパイルされないので、単純に互いに参照させることは出来ない。Plugins、Standard Assets、Pro Standard Assetsフォルダに置いてあるコードは最初にコンパイルされ、逆にこのコードに置かれていないコードは、フォルダに置いてあるコードとスクリプトで定義されたクラスを参照出来ることになる。
このようにしてStandard Assets、Pro Standard Assets、 またはPluginsフォルダ(またはさらに子フォルダ)C#スクリプトにJavascriptを置くことで、C#のコードにJavascriptクラスを参照することが出来る。覚えておくべきこととして、これら特別なフォルダに置かれたJavascriptは、それ以外のフォルダにあるC#を参照することは出来ないし、そのC#とJavascriptが逆の場合もまた然りである。これがプロジェクトで言語を混ぜるべきでない理由です。もし参照しないといけない事態に陥った場合に参照する方法がなくなってしまう。
Unityはスクリプトのコンパイル順序に関するドキュメントをここに置いている。
---------
うんうん、今回の記事もさして難易度が高いものではなく、普段アセットストアからスクリプトをダウンロードしている方はご存知のこととおもう。
そこにチャレンジしたい方は以下のブログ記事を参考にすると良いと思う:
テラシュールウェア:スクリプトの実行順序を変更する
http://terasur.blog.fc2.com/blog-entry-161.html
Unityの基本を積み重ねようぜ!
そこにチャレンジしたい方は以下のブログ記事を参考にすると良いと思う:
テラシュールウェア:スクリプトの実行順序を変更する
http://terasur.blog.fc2.com/blog-entry-161.html
Unityの基本を積み重ねようぜ!
0 件のコメント:
コメントを投稿