Förstå byggresultatet
↑Så fungerar det
Section titled “Så fungerar det”Ett desktopbygge innehåller en körbar fil, speldata och stödbibliotek. Att bara kopiera den körbara filen brukar förstöra bygget. Behåll hela den genererade resultatmappen tillsammans; exakt vilka filer som skapas beror på Unity-version, scripting backend och bygginställningar.
| Målplattform | Typiskt innehåll | Paketering |
|---|---|---|
| Windows 10 och Windows 11 x64 | Game.exe, Game_Data/, UnityPlayer.dll samt genererade beroenden |
ZIP med allt innehåll i Builds/Windows/ |
| Linux x64 | Game.x86_64, Game_Data/, UnityPlayer.so samt genererade beroenden |
tar.gz av Builds/Linux/, med körbehörigheter bevarade |
Windows 10 och 11 använder samma Windowsformat; verifiera spelet på båda. En Windowsfil körs inte direkt på Linux, och en Linuxfil körs inte direkt på Windows. Distribuera och testa separata artefakter för målplattformarna. Bevara felsökningssymboler privat vid behov, men gissa inte vilka runtimeberoenden som kan tas bort.
Dokumentera Unity-version, målplattform, scripting backend, commit, profil/konfiguration och teststatus för varje release. Lägg genererade binärer utanför Assets/ och utanför versionshanteringen.
Windows 10 och Windows 11: granska och paketera med PowerShell
Section titled “Windows 10 och Windows 11: granska och paketera med PowerShell”Detta fungerar i Windows PowerShell 5.1 och PowerShell 7. Kör från Unityprojektets rot efter Windowsbygget. .NET:s ZIP-stöd inkluderar även dolda filer, som Compress-Archive kan utelämna. Välj ett nytt arkivnamn för varje release; CreateFromDirectory ger fel om arkivet redan finns.
$ErrorActionPreference = 'Stop'$BuildDirectory = (Resolve-Path -LiteralPath '.\Builds\Windows').PathGet-ChildItem -LiteralPath $BuildDirectory -Recurse -File -Force | Sort-Object FullName | Select-Object FullName, Length
Add-Type -AssemblyName System.IO.Compression.FileSystem$ArchivePath = Join-Path (Split-Path -Parent $BuildDirectory) 'Windows-player.zip'[System.IO.Compression.ZipFile]::CreateFromDirectory($BuildDirectory, $ArchivePath)ZIP-filen innehåller byggmappens innehåll. Packa upp till en ny testmapp med Utforskarens Extrahera alla eller följande PowerShell-kommandon och starta sedan Game.exe:
Expand-Archive -LiteralPath '.\Builds\Windows-player.zip' -DestinationPath '.\Builds\Windows-smoke'& '.\Builds\Windows-smoke\Game.exe'Linux: granska och paketera med Bash
Section titled “Linux: granska och paketera med Bash”Kör från Unityprojektets rot efter Linuxbygget. find inkluderar dolda filer; tar behåller mappstruktur och körbehörigheter. Välj ett nytt arkivnamn för varje release.
#!/usr/bin/env bashset -euo pipefailfind ./Builds/Linux -type f -print | sorttest -x ./Builds/Linux/Game.x86_64tar -czf ./Builds/Linux-player.tar.gz -C ./Builds LinuxPacka upp till en ny mapp och starta på Linux:
mkdir -p ./Builds/Linux-smoketar -xzf ./Builds/Linux-player.tar.gz -C ./Builds/Linux-smoke./Builds/Linux-smoke/Linux/Game.x86_64Om ett annat överföringsverktyg tog bort körbehörigheten återställer du den med chmod +x ./Builds/Linux-smoke/Linux/Game.x86_64. Vanlig tar-uppackning bör bevara den. Testdatorn behöver fortfarande de runtimebibliotek och det grafikstöd som Unity-versionen kräver.
När och varför det behövs – och vanliga fallgropar
Section titled “När och varför det behövs – och vanliga fallgropar”Arkiven ligger utanför mapparna som paketeras så att de inte inkluderar sig själva. Testa uppackade artefakter på Windows 10, Windows 11 och den Linuxdistribution du stöder, helst utan Unity installerat. Kontrollera uppstart, scener, inmatning, sparning och loggar. Ett skapat arkiv bevisar inte att releasen fungerar.
Med standardloggning aktiverad skriver Windows 10/11 Player.log under %USERPROFILE%\AppData\LocalLow\CompanyName\ProductName\; Linux använder ~/.config/unity3d/CompanyName/ProductName/Player.log. Byt företags-/produktnamn enligt Player Settings. Ett uttryckligt -logFile-argument kan ändra platsen.
