コンテンツにスキップ

Unityでの TorchSharp & RLMatrixの使用

それでも本当にUnity 2025でTorchSharpを使いたいですか?

TorchSharpの貢献者は私よりもずっと詳しく説明できると思いますが、基本的にインストール手順にはlibtorch DLL(1GB以上)のダウンロードとインストール/参照が含まれます。

これは新しい.NET Coreバージョンでは自動的に行われますが、UnityはまだCoreCLRに移行していないため、NuGetインストールを含む多くの手順を手動で行う必要があります。 以前にUnityでNuGetパッケージをインストールする効果的な方法についてガイドを作成しましたが、この短いガイドではDLLの手動コピーを追加しています。

  1. Unityプロジェクトに必要なフォルダを作成します:
Assets/Plugins/Windows/x86_64
  1. NuGetを使用してRLMatrixをインストールする

まず、NuGetウェブサイトからnuget.exeをダウンロードし、C:\nuget.exeに保存します。別の場所に保存する場合は、以下のスクリプトのパスを更新してください。

次のPowerShellスクリプトをUnityプロジェクトのルートディレクトリにinstall-rlmatrix.ps1として保存します:

Terminal window
$packageName = "RLMatrix"
$packageVersion = "0.4.0"
$netTarget = "netstandard2.0"
$tempDir = ".\Temp"
$dllDir = ".\Assets\Plugins"
$nugetPath = "C:\nuget.exe"
if (!(Test-Path $nugetPath)) {
Write-Error "NuGet.exe not found at $nugetPath. Please ensure it's installed there or update the path."
exit 1
}
if (!(Test-Path $tempDir)) {
New-Item -ItemType "directory" -Path $tempDir
}
& $nugetPath install $packageName -Version $packageVersion -OutputDirectory $tempDir
if (!(Test-Path $dllDir)) {
New-Item -ItemType "directory" -Path $dllDir
}
Get-ChildItem -Path $tempDir -Directory | ForEach-Object {
$packagePath = Join-Path $_.FullName "lib\$netTarget"
if (Test-Path $packagePath) {
Get-ChildItem -Path $packagePath -Filter "*.dll" | ForEach-Object {
$destinationPath = Join-Path $dllDir $_.Name
if (!(Test-Path $destinationPath)) {
Copy-Item -Path $_.FullName -Destination $destinationPath
}
}
}
}
Remove-Item $tempDir -Recurse -Force

このスクリプトの詳細については、次のURLを参照してください:https://www.nurupo.io/posts/unityhowtonuget/

  1. PowerShellスクリプトを実行する

Windowsエクスプローラーで.ps1ファイルを右クリックし、「PowerShellで実行」を選択すると便利に実行できます。

  1. TorchSharpネイティブDLLを取得する

すべてのTorchSharp DLLをAssets/Plugins/Windows/x86_64にコピーします。私はTorchSharpを使用していた.NET 8.0プロジェクトからこれらをコピーしました。 インスペクターでのDLL設定

  1. UnityでDLLインポート設定を構成する

Pluginsフォルダ内の各DLLについて:

  • UnityプロジェクトパネルでDLLを選択します
  • インスペクターで、次の設定と一致することを確認します:
  • プラットフォームを「Windows」に設定
  • CPUを「x86_64」に設定

インスペクターでのDLL設定(続き)

完了、これで動作するはずです!