Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 19 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,19 @@ Find all of your Unity installs:
Get-UnitySetupInstance

# Example output:
# InstallationVersion InstallationPath
# ------------------- ----------------
# 2017.2.1f1 C:\Program Files\Unity-2017.2.1f1\Editor\
# 2017.1.0p5 C:\Program Files\Unity.2017.1.0p5\Editor\
# 2017.1.1f1 C:\Program Files\Unity.2017.1.1f1\Editor\
# 2017.1.1p3 C:\Program Files\Unity.2017.1.1p3\Editor\
# 2017.2.0f3 C:\Program Files\Unity.2017.2.0f3\Editor\
# 2017.3.0f3 C:\Program Files\Unity.2017.3.0f3\Editor\
# 5.5.4p3 C:\Program Files (x86)\Unity.5.5.4p3\Editor\
# Version Components Path
# ------- ---------- ----
# 2017.1.2f1 Setup, Metro, UWP_IL2CPP C:\Program Files\Unity-2017.1.2f1\Editor\
# 2017.1.3f1 Setup, Metro, UWP_IL2CPP C:\Program Files\Unity-2017.1.3f1\Editor\
# 2017.2.1f1 Setup, Metro, UWP_IL2CPP C:\Program Files\Unity-2017.2.1f1\Editor\
# 2017.3.1f1 Setup, Metro, UWP_IL2CPP, Linux, Vuforia C:\Program Files\Unity-2017.3.1f1\Editor\
# 2018.1.0b4 Setup, Metro, UWP_IL2CPP, Vuforia C:\Program Files\Unity-2018.1.0b4\Editor\
# 2018.1.0b8 All C:\Program Files\Unity-2018.1.0b8\Editor\
# 2017.1.0p5 Setup, Metro, UWP_IL2CPP C:\Program Files\Unity.2017.1.0p5\Editor\
# 2017.1.1f1 Setup, Metro, UWP_IL2CPP C:\Program Files\Unity.2017.1.1f1\Editor\
# 2017.1.1p3 Setup, StandardAssets, Metro, UWP_IL2CPP C:\Program Files\Unity.2017.1.1p3\Editor\
# 2017.2.0f3 Setup, Metro, UWP_IL2CPP, Vuforia C:\Program Files\Unity.2017.2.0f3\Editor\
# 2017.3.0f3 Setup, Metro, UWP_IL2CPP, Mac, Vuforia C:\Program Files\Unity.2017.3.0f3\Editor\
```

Select the Unity installs that you want:
Expand All @@ -50,12 +54,12 @@ Find all the Unity projects recursively:
Get-UnityProjectInstance -Recurse

# Example output:
# ProjectPath UnityInstanceVersion
# ----------- --------------------
# C:\Projects\Project1\OneUnity\ 2017.2.0f3
# C:\Projects\Project1\TwoUnity\ 2017.3.0f3
# C:\Projects\Project2\ 2017.1.1p1
# C:\Projects\Project3\App.Unity\ 2017.1.2f1
# Version Path
# ------- ----
# 2017.2.0f3 C:\Projects\Project1\OneUnity\
# 2017.3.0f3 C:\Projects\Project1\TwoUnity\
# 2017.1.1p1 C:\Projects\Project2\
# 2017.1.2f1 C:\Projects\Project3\App.Unity\
```
Launch the right Unity editor for a project:
```powershell
Expand Down
34 changes: 31 additions & 3 deletions UnitySetup/UnitySetup.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ enum UnitySetupComponentType
Mac = (1 -shl 11)
Vuforia = (1 -shl 12)
WebGL = (1 -shl 13)
All = (-1)
All = (1 -shl 14) - 1
}

class UnitySetupInstaller
Expand All @@ -34,8 +34,9 @@ class UnitySetupInstaller
class UnitySetupInstance
{
[UnityVersion]$Version
[UnitySetupComponentType]$Components
[string]$Path

UnitySetupInstance([string]$path) {

$ivyPath = [io.path]::Combine("$path", 'Data\UnityExtensions\Unity\Networking\ivy.xml');
Expand All @@ -44,10 +45,37 @@ class UnitySetupInstance

if( !($xmlDoc.'ivy-module'.info.unityVersion)) {
throw "Unity setup ivy is missing version: $ivyPath"
}
}

$this.Path = $path
$this.Version = $xmlDoc.'ivy-module'.info.unityVersion
$this.Components = [UnitySetupComponentType]::Setup

$componentTests = @{
[UnitySetupComponentType]::Documentation = ,"$Path\Data\Documentation";
[UnitySetupComponentType]::StandardAssets = ,"$Path\Standard Assets";
[UnitySetupComponentType]::Windows_IL2CPP = ,"$Path\Data\PlaybackEngines\windowsstandalonesupport\Variations\win32_development_il2cpp";
[UnitySetupComponentType]::Metro = "$Path\Data\PlaybackEngines\MetroSupport\Templates\UWP_.NET_D3D",
"$Path\Data\PlaybackEngines\MetroSupport\Templates\UWP_D3D";
[UnitySetupComponentType]::UWP_IL2CPP = ,"$Path\Data\PlaybackEngines\MetroSupport\Templates\UWP_IL2CPP_D3D";
[UnitySetupComponentType]::Android = ,"$Path\Data\PlaybackEngines\AndroidPlayer";
[UnitySetupComponentType]::iOS = , "$Path\Data\PlaybackEngines\iOSSupport";
[UnitySetupComponentType]::AppleTV = , "$Path\Data\PlaybackEngines\AppleTVSupport";
[UnitySetupComponentType]::Facebook = , "$Path\Data\PlaybackEngines\Facebook";
[UnitySetupComponentType]::Linux = , "$Path\Data\PlaybackEngines\LinuxStandaloneSupport";
[UnitySetupComponentType]::Mac = , "$Path\Data\PlaybackEngines\MacStandaloneSupport";
[UnitySetupComponentType]::Vuforia = , "$Path\Data\PlaybackEngines\VuforiaSupport";
[UnitySetupComponentType]::WebGL = , "$Path\Data\PlaybackEngines\WebGLSupport";
}

$componentTests.Keys | ForEach-Object {
foreach( $test in $componentTests[$_] ) {
if( Test-Path -PathType Container -Path $test ) {
$this.Components += $_
break;
}
}
}
}
}

Expand Down