Rustでunityプラグイン

これは

RustでUnityプラグイン作れるらしいのを試した記事です。

まずはじめに

この間HelloWorldしたRust。 Unity用のプラグイン書いてみたいなーと思って始めたので調べてみた。

結論

素晴らしい記事と

medium.com

素晴らしいものがあったのでこれを使う。とてもありがたい。

github.com

ここからは

すばらしい結論が出たところで手を動かしていった結果をつらつらと書いていきます。

Rustのバージョン確認
今使っているのはWindowsなのでPowerShellで以下のコマンドを実行

rustc --version

Rustの開発環境
今はPowerShell+VSCodeで。 ショートカット使うのでそんなに苦じゃないけどスマートさに欠けるのでその辺はおいおいクリアにしていく。

プラグインを作っていくステップ
 1.Rustのプロジェクトを作る
 2.Cargo.tomlファイルを編集する
 3.lib.rs作ってやりたいことを書く
 4.ビルドする
 5.Rustプロジェクトフォルダに「target」ができておりその下にdllが作成されている。
 6.UnityプロジェクトのPluginsに完成品を入れてあげる
 7.完成

1.Rustのプロジェクトを作る
以下のコマンドで。プロジェクト名は好きなものを

cargo new 好きなプロジェクト名

2.Cargo.tomlファイルを編集する
今回は参考にさせてもらった内容をそのまま利用した。 基本的には[lib]以降を追記してあげる形になる。

[package]
name = "samplerust"
version = "0.1.0"
authors = ["XXXXXXX"]
edition = "2018"

[lib]
name = "unity_rust" # the name of the library that will be generated
crate-type = ["dylib"]

後になって気づいたがRustのドキュメントに詳しく記載あったのでこちらも確認を行った。 きれいに動くと気持ちいいけどわからないとこあるの気持ち悪いよね…
nameにはDLLにつけたい名前
crate-typeで使えるオプションはdylib、rlib、staticlib、cdylib、と proc-macro
詳しくは↓ The Manifest Format - The Cargo Book

4.ビルドする

cargo build

あるいは

cargo build --release

5.Rustプロジェクトフォルダに「target」ができておりその下にdllが作成されている。
できてるやったー f:id:torikizi:20190603224614j:plain

6.UnityプロジェクトのPluginsに完成品を入れてあげる
取り込みがうまくいかない…ので今日はここまで。 できなかったところはちょっと調べます。