Sử Dụng TorchSharp & RLMatrix trong Unity
Vậy bạn THỰC SỰ muốn sử dụng TorchSharp trong Unity 2025?
Những người đóng góp cho TorchSharp có thể giải thích điều này chi tiết hơn tôi - nhưng về cơ bản các bước cài đặt bao gồm tải xuống các tệp DLL libtorch (hơn 1GB) và cài đặt/tham chiếu chúng.
Điều này được thực hiện tự động trong các phiên bản .NET Core mới hơn, nhưng vì Unity vẫn chưa chuyển sang CoreCLR, chúng ta phải thực hiện nhiều bước thủ công - bao gồm cả việc cài đặt NuGet. Trước đây tôi đã viết hướng dẫn về cách hiệu quả để cài đặt các gói NuGet trong Unity; hướng dẫn ngắn này chỉ mở rộng nó với việc sao chép thủ công các tệp DLL.
- Tạo các thư mục cần thiết trong dự án Unity của bạn:
Assets/Plugins/Windows/x86_64
- Cài đặt RLMatrix sử dụng NuGet
Đầu tiên, tải xuống nuget.exe
từ trang web NuGet và lưu nó vào C:\nuget.exe
. Nếu bạn lưu nó ở nơi khác, hãy đảm bảo cập nhật đường dẫn trong script bên dưới.
Lưu script PowerShell sau đây dưới dạng install-rlmatrix.ps1
trong thư mục gốc của dự án Unity của bạn:
$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
Để biết thêm chi tiết về cách hoạt động của script này, xem: https://www.nurupo.io/posts/unityhowtonuget/
- Chạy script PowerShell
Cách thuận tiện là nhấp chuột phải vào tệp .ps1 trong Windows Explorer và chọn “Run with PowerShell” (Chạy với PowerShell).
- Lấy các tệp DLL gốc của TorchSharp
Sao chép tất cả các tệp DLL của TorchSharp vào Assets/Plugins/Windows/x86_64
. Tôi đã sao chép chúng từ một dự án .NET 8.0 mà tôi có sẵn đang sử dụng TorchSharp.
- Cấu hình thiết lập nhập DLL trong Unity
Đối với mỗi tệp DLL trong thư mục Plugins:
- Chọn tệp DLL trong bảng Project của Unity
- Trong Inspector, đảm bảo thiết lập khớp với những điều sau:
- Đặt Platform thành “Windows”
- Đặt CPU thành “x86_64”
Xong, việc này sẽ hoạt động!