16 [CustomEditor(typeof(BuildDefinition))]
22 specifyCustomDecorator(
"_options", prop =>
drawExportFolder(prop,
"Build",
"Build Folder"));
23 specifyCustomDrawer(
"_options", drawOptions);
25 specifyCustomDecorator(
"_playerSettings", decorateBuildPlayerSettings);
26 specifyCustomPostDecorator(
"_playerSettings", postDecorateBuildPlayerSettings);
44 private void drawScene(Rect rect, SerializedProperty property) {
45 float originalWidth = EditorGUIUtility.labelWidth;
46 EditorGUIUtility.labelWidth *= 0.2f;
48 string label =
new string(property.displayName.Where(c =>
char.IsDigit(c)).ToArray());
49 EditorGUI.PropertyField(rect, property,
new GUIContent(label));
51 EditorGUIUtility.labelWidth = originalWidth;
54 private void drawBuildTarget(Rect rect, SerializedProperty property) {
55 EditorGUI.PropertyField(rect, property, GUIContent.none);
58 private void drawOptions(SerializedProperty prop) {
59 EditorGUILayout.BeginHorizontal();
61 EditorGUILayout.PropertyField(prop);
63 if (GUILayout.Button(
"Debug", GUILayout.ExpandWidth(
false))) {
64 prop.intValue = (int)(BuildOptions.AllowDebugging |
65 BuildOptions.ConnectWithProfiler |
66 BuildOptions.Development |
67 BuildOptions.ForceEnableAssertions);
70 EditorGUILayout.EndHorizontal();
73 private void decorateBuildPlayerSettings(SerializedProperty prop) {
75 !serializedObject.FindProperty(
"_useSpecificPlayerSettings").boolValue;
77 EditorGUI.BeginDisabledGroup(shouldDisable);
79 private void postDecorateBuildPlayerSettings(SerializedProperty prop) {
80 EditorGUI.EndDisabledGroup();
override string GetBuildMethodName()
override int GetBuildMenuPriority()
ReorderableList createList(string propertyName, Action< Rect, SerializedProperty > drawMethod)
void drawExportFolder(SerializedProperty prop, string buildText, string label)