Hoppa till innehåll

Förstå byggresultatet

↑

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.

InspectBuild.ps1 : Windows 10 and Windows 11
$ErrorActionPreference = 'Stop'
$BuildDirectory = (Resolve-Path -LiteralPath '.\Builds\Windows').Path
Get-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:

Test the extracted Windows build
Expand-Archive -LiteralPath '.\Builds\Windows-player.zip' -DestinationPath '.\Builds\Windows-smoke'
& '.\Builds\Windows-smoke\Game.exe'

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.

InspectBuild.sh : Linux
#!/usr/bin/env bash
set -euo pipefail
find ./Builds/Linux -type f -print | sort
test -x ./Builds/Linux/Game.x86_64
tar -czf ./Builds/Linux-player.tar.gz -C ./Builds Linux

Packa upp till en ny mapp och starta på Linux:

Test the extracted Linux build
mkdir -p ./Builds/Linux-smoke
tar -xzf ./Builds/Linux-player.tar.gz -C ./Builds/Linux-smoke
./Builds/Linux-smoke/Linux/Game.x86_64

Om 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.