時々必要に迫られることがあるので、備忘録。
unity2020 で確認。
Player 設定
Project Settings > Player > Other Settings > Configuration > API Compatibility Level*
を .Net 4.x にします。
dll を Assets 以下に入れる
例えば unity のバージョンが 2020.3.41f1 の場合、System.Windows.Forms.dll はこちらに格納されています。
C:\Program Files\Unity\Hub\Editor\2020.3.41f1\Editor\Data\MonoBleedingEdge\lib\mono\4.5
4.5 以外のフォルダにも System.Windows.Forms.dll はあるのですが、それらのファイルを Assets にコピーした場合、CIL イメージがないというエラーが表示されてしまうので、必ず 4.5 に入っている dll を使いましょう。
全ての dll を比較すると、4.5 の dll だけサイズが違うのがわかります。
Windows のみ使用許可する
dll ファイルを選択し、インスペクターで以下のように設定します。
(Linux や Mac も一見使えそうな設定画面ですが、まぁ、無理でしょう……)
C# からコール
後はいつものように C# からコールします。
using System.Windows.Forms; void Awake() { SendKeys.SendWait("^v"); }