##はじめに
前回、VSCodeをUnity5開発用に設定するの延長上のお話でもあるので、VSCodeをUnity開発向けに導入する部分は省略します。
今回はVSCodeでKotlinを使いAndroid用のUnity拡張機能を作る部分を中心にまとめます。
準備
###VSCodeの拡張機能のインストール
以下の拡張機能の導入を推奨します
###kotlinのコンパイラを用意する
公式ドキュメント:Working with the Command Line Compilerの手順にそって導入します。
※今回のやり方でビルドを行う分には導入の必要はありません。
kotlinコードのコンパイルテスト用にあると便利です。
##ビルド環境を整える
###Gradleの導入
Gradle公式ページから最新のGradleを入手しGRADLE_HOMEの環境パスを設定しておきます。(詳しい手順については省略)
Gradleの導入ができたらVSCodeのプロジェクト内にビルドに必要なファイルを用意します。
必要なファイルは以下のコマンドを実行し用意します。
$ gradle
実行後.gradleが作成されます。
続けてgradleの環境を導入していない人でもビルドできるようにする場合は以下のコマンドを実行しwrapper系のファイルを作成します。
$ gradle wrapper
###build.gradleファイルを用意する
ビルド時のふるまいを設定するファイルを作成します。
参考までに今回作成した設定ファイルのコードを紹介します。
buildscript {
ext.kotlin_version = '1.2.41' // kotlinのバージョンを指定
repositories {
mavenCentral() // kotlin用
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
apply plugin: "kotlin"
sourceSets {
main.kotlin.srcDirs += 'src\\'
}
repositories {
mavenCentral()
}
// 外部ライブラリの依存関係指定
dependencies {
// kotlin標準ライブラリ
// implementationの方がcompileよりも高速にビルド可能
implementation "org.jetbrains.kotlin:kotlin-stdlib"
compileOnly fileTree(dir: 'libs', include: ['*.jar'])
// Unityのライブラリを持ってくる場合は
// 参考 https://docs.unity3d.com/ja/current/Manual/PluginsForAndroid.html
// 参考 https://docs.unity3d.com/Manual/NativePlugins.html
// classes.jarが必要だがこのファイルは以下の場所にある
//"\Editor\Data\PlaybackEngines\androidplayer\Variations\mono\Release\Classes.classes.jar"
}
※設定されているパスについては各プロジェクトの構成に合わせて適切なパスの設定が必要です。
##ビルド
ビルドの設定が完了したらVSCodeからビルドできるようにします。
毎回コンソールからコマンドを叩くのも面倒なのでショートカットキーに割り当てると楽で良いです。
###ショートカットの設定の仕方
公式のドキュメントが一番わかりやすいです。
Keybindings.json内に今回のビルド用のショートカットを用意します。一例として今回設定したコードを紹介します。
[
{ "key": "ctrl+l ctrl+k", "command": "workbench.action.tasks.runTask",
"args": "kotlinc" },
{ "key": "ctrl+g ctrl+k", "command": "workbench.action.tasks.runTask",
"args": "gradlew build"},
]
###ビルド後
無事ビルドが終わるとbuild\libsの中に.jarファイルが出来ているはずです。後はこれをUnityのpluginとして読み込ませてあげれば完了です。
##さいごに
今回は具体的な実装部分(肝心のkotlinのコード部分等)には一切触れませんでした。次回はkotlinで実際にUnityの機能を拡張する形で実装してみた例をベースに紹介したいと思います。