Unityでの TorchSharp & RLMatrixの使用
それでも本当にUnity 2025でTorchSharpを使いたいですか?
TorchSharpの貢献者は私よりもずっと詳しく説明できると思いますが、基本的にインストール手順にはlibtorch DLL(1GB以上)のダウンロードとインストール/参照が含まれます。
これは新しい.NET Coreバージョンでは自動的に行われますが、UnityはまだCoreCLRに移行していないため、NuGetインストールを含む多くの手順を手動で行う必要があります。 以前にUnityでNuGetパッケージをインストールする効果的な方法についてガイドを作成しましたが、この短いガイドではDLLの手動コピーを追加しています。
- Unityプロジェクトに必要なフォルダを作成します:
Assets/Plugins/Windows/x86_64
- NuGetを使用してRLMatrixをインストールする
まず、NuGetウェブサイトからnuget.exe
をダウンロードし、C:\nuget.exe
に保存します。別の場所に保存する場合は、以下のスクリプトのパスを更新してください。
次のPowerShellスクリプトをUnityプロジェクトのルートディレクトリにinstall-rlmatrix.ps1
として保存します:
$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 $tempDirif (!(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/
- PowerShellスクリプトを実行する
Windowsエクスプローラーで.ps1ファイルを右クリックし、「PowerShellで実行」を選択すると便利に実行できます。
- TorchSharpネイティブDLLを取得する
すべてのTorchSharp DLLをAssets/Plugins/Windows/x86_64
にコピーします。私はTorchSharpを使用していた.NET 8.0プロジェクトからこれらをコピーしました。
- UnityでDLLインポート設定を構成する
Pluginsフォルダ内の各DLLについて:
- UnityプロジェクトパネルでDLLを選択します
- インスペクターで、次の設定と一致することを確認します:
- プラットフォームを「Windows」に設定
- CPUを「x86_64」に設定
完了、これで動作するはずです!