-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathBuildRollABall.cs
109 lines (93 loc) · 3.56 KB
/
BuildRollABall.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using Altom.AltTester;
using Altom.AltTesterEditor;
using UnityEditor;
using UnityEngine;
class BuildRollABall
{
public static void WindowsBuildForRollABallFromCommandLine(){
WindowsBuildFromCommandLine(true,13000);
}
static void WindowsBuildFromCommandLine(bool withAltunity, int proxyPort = 13000)
{
SetPlayerSettings(false);
Debug.Log("Starting Windows build..." + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion);
BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
buildPlayerOptions.scenes = new string[]
{
"Assets/Scenes/MiniGame.unity"
};
if (withAltunity)
{
buildPlayerOptions.locationPathName = "RollABallWindowsTest/RollABall.exe";
}
else
{
buildPlayerOptions.locationPathName = "RollABallWindows/RollABall.exe";
}
buildPlayerOptions.target = BuildTarget.StandaloneWindows;
buildPlayerOptions.targetGroup = BuildTargetGroup.Standalone;
if (withAltunity)
{
buildPlayerOptions.options = BuildOptions.Development| BuildOptions.IncludeTestAssemblies;
}
BuildGame(buildPlayerOptions, withAltunity, proxyPort: proxyPort);
}
private static void SetPlayerSettings(bool customBuild)
{
PlayerSettings.companyName = "Altom";
PlayerSettings.productName = "RollABall";
PlayerSettings.bundleVersion = "1.0";
PlayerSettings.resizableWindow = true;
PlayerSettings.defaultScreenHeight = 900;
PlayerSettings.defaultScreenWidth = 1200;
PlayerSettings.fullScreenMode = FullScreenMode.Windowed;
PlayerSettings.SetApiCompatibilityLevel(BuildTargetGroup.Standalone, ApiCompatibilityLevel.NET_4_6);
PlayerSettings.runInBackground = true;
}
static void BuildGame(BuildPlayerOptions buildPlayerOptions, bool withAltUnity, string proxyHost = null, int proxyPort = 13000)
{
try
{
if (withAltUnity)
{
AddAltUnity(buildPlayerOptions.targetGroup, buildPlayerOptions.scenes[0], proxyHost, proxyPort);
}
var results = BuildPipeline.BuildPlayer(buildPlayerOptions);
if (withAltUnity)
{
RemoveAltUnity(buildPlayerOptions.targetGroup);
}
if (results.summary.totalErrors == 0 || results.summary.result == UnityEditor.Build.Reporting.BuildResult.Succeeded)
{
Debug.Log("Build succeeded!");
}
else
{
Debug.LogError("Build failed! " + results.steps + "\n Result: " + results.summary.result + "\n Stripping info: " + results.strippingInfo);
// EditorApplication.Exit(1);
}
Debug.Log("Finished. " + PlayerSettings.productName + " : " + PlayerSettings.bundleVersion);
// EditorApplication.Exit(0);
}
catch (Exception exception)
{
Debug.LogException(exception);
// EditorApplication.Exit(1);
}
}
static void AddAltUnity(BuildTargetGroup buildTargetGroup, string firstSceneName, string proxyHost = null, int proxyPort = 13000)
{
AltBuilder.PreviousScenePath = firstSceneName;
var instrumentationSettings = new AltInstrumentationSettings();
instrumentationSettings.ProxyPort = proxyPort;
if (!string.IsNullOrEmpty(proxyHost)) instrumentationSettings.ProxyHost = proxyHost;
AltBuilder.AddAltTesterInScriptingDefineSymbolsGroup(buildTargetGroup);
AltBuilder.InsertAltInScene(firstSceneName, instrumentationSettings);
Debug.Log("Instrumenting with proxyHost: " + proxyHost + ", proxyPort: " + proxyPort);
}
static void RemoveAltUnity(BuildTargetGroup buildTargetGroup)
{
AltBuilder.RemoveAltTesterFromScriptingDefineSymbols(buildTargetGroup);
}
}