Skip to content

Commit 90a710c

Browse files
committed
BuildConfigGroup, WindowBuildConfig 추가
1 parent cdbae3c commit 90a710c

File tree

3 files changed

+121
-1
lines changed

3 files changed

+121
-1
lines changed
Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,30 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using UnityEditor;
14
using UnityEngine;
25

36
namespace Unity_Builder
47
{
58
[CreateAssetMenu(fileName = "BuildConfigGroup", menuName = GlobalConst.CreateAssetMenu_Prefix + "/BuildConfigGroup")]
69
public class BuildConfigGroup : ScriptableObject
710
{
11+
public List<BuildConfig> configList = new List<BuildConfig>();
812
}
9-
}
13+
14+
[CustomEditor(typeof(BuildConfigGroup))]
15+
public class BuildConfigGroup_Inspector : Editor
16+
{
17+
string _commandLine;
18+
19+
public override void OnInspectorGUI()
20+
{
21+
base.OnInspectorGUI();
22+
23+
BuildConfigGroup configGroup = target as BuildConfigGroup;
24+
if (GUILayout.Button("All Build!"))
25+
{
26+
configGroup.configList.ForEach(buildConfig => UnityBuilder.Build(buildConfig));
27+
}
28+
}
29+
}
30+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
using System;
2+
using UnityEngine;
3+
using UnityEditor;
4+
using System.Collections.Generic;
5+
6+
namespace Unity_Builder
7+
{
8+
[CreateAssetMenu(fileName = "WindowBuildConfig", menuName = GlobalConst.CreateAssetMenu_Prefix + "/WindowBuildConfig")]
9+
public class WindowBuildConfig : BuildConfig
10+
{
11+
public override BuildTarget buildTarget => BuildTarget.StandaloneWindows64;
12+
13+
/// <summary>
14+
/// CPP 빌드를 할지 체크, CPP빌드는 오래 걸리므로 Test빌드가 아닌 Alpha 빌드부터 하는걸 권장
15+
/// </summary>
16+
public ScriptingImplementation scriptingBackEnd;
17+
18+
public override void ResetSetting(BuildConfig buildConfig)
19+
{
20+
base.ResetSetting(buildConfig);
21+
22+
BuildTargetGroup targetGroup = BuildPipeline.GetBuildTargetGroup(buildTarget);
23+
scriptingBackEnd = PlayerSettings.GetScriptingBackend(targetGroup);
24+
buildConfig.buildPath +=
25+
"\n_{bundleVersion}.{bundleVersionCode}" +
26+
"\n_{scriptingBackEnd}";
27+
}
28+
29+
public override void OnPreBuild(IDictionary<string, string> commandLine, ref BuildPlayerOptions buildPlayerOptions)
30+
{
31+
base.OnPreBuild(commandLine, ref buildPlayerOptions);
32+
33+
PlayerSettings.SetScriptingBackend(BuildTargetGroup.Standalone, scriptingBackEnd);
34+
}
35+
36+
public override string GetBuildPath()
37+
{
38+
return base.GetBuildPath()
39+
.Replace("{scriptingBackEnd}", scriptingBackEnd.ToString())
40+
+ ".apk";
41+
}
42+
}
43+
44+
[CustomEditor(typeof(WindowBuildConfig))]
45+
public class WindowBuildConfig_Inspector : Editor
46+
{
47+
string _commandLine;
48+
49+
public override void OnInspectorGUI()
50+
{
51+
base.OnInspectorGUI();
52+
53+
EditorGUILayout.Space();
54+
EditorGUILayout.Space();
55+
56+
AndroidBuildConfig config = target as AndroidBuildConfig;
57+
if (GUILayout.Button("Reset to Current EditorSetting"))
58+
{
59+
config.ResetSetting(config);
60+
}
61+
62+
if (GUILayout.Button("Build!"))
63+
{
64+
UnityBuilder.Build(config);
65+
}
66+
67+
_commandLine = EditorGUILayout.TextField("commandLine", _commandLine);
68+
if (GUILayout.Button($"Build with \'{_commandLine}\'"))
69+
{
70+
string[] commands = _commandLine.Split(' ');
71+
for (int i = 0; i < commands.Length; i++)
72+
{
73+
string command = commands[i];
74+
bool hasNextCommand = i + 1 < commands.Length;
75+
if (command.StartsWith("-"))
76+
{
77+
if (hasNextCommand)
78+
Environment.SetEnvironmentVariable(command, commands[i + 1]);
79+
else
80+
Environment.SetEnvironmentVariable(command, "");
81+
}
82+
}
83+
84+
UnityBuilder.Build();
85+
}
86+
}
87+
}
88+
}

Editor/BuildConfig/WindowBuildConfig.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)