private void DoInspectorBundleConfiguratorGUI(NodeGUI node)
{
if (node.Data.BundleNameTemplate == null)
{
return;
}
EditorGUILayout.HelpBox("BundleConfigurator: Create asset bundle settings with given group of assets.", MessageType.Info);
UpdateNodeName(node);
GUILayout.Space(10f);
//Show target configuration tab
DrawPlatformSelector(node);
using (new EditorGUILayout.VerticalScope(GUI.skin.box)) {
var disabledScope = DrawOverrideTargetToggle(node, node.Data.BundleNameTemplate.ContainsValueOf(currentEditingGroup), (bool enabled) => {
using (new RecordUndoScope("Remove Target Bundle Name Template Setting", node, true)){
if (enabled)
{
node.Data.BundleNameTemplate[currentEditingGroup] = node.Data.BundleNameTemplate.DefaultValue;
}
else
{
node.Data.BundleNameTemplate.Remove(currentEditingGroup);
}
}
});
using (disabledScope) {
var bundleNameTemplate = EditorGUILayout.TextField("Bundle Name Template", node.Data.BundleNameTemplate[currentEditingGroup]).ToLower();
if (bundleNameTemplate != node.Data.BundleNameTemplate[currentEditingGroup])
{
using (new RecordUndoScope("Change Bundle Name Template", node, true)){
node.Data.BundleNameTemplate[currentEditingGroup] = bundleNameTemplate;
}
}
}
}
using (new EditorGUILayout.VerticalScope(GUI.skin.box)) {
GUILayout.Label("Variants:");
var variantNames = node.Data.Variants.Select(v => v.Name).ToList();
Variant removing = null;
foreach (var v in node.Data.Variants)
{
using (new GUILayout.HorizontalScope()) {
if (GUILayout.Button("-", GUILayout.Width(30)))
{
removing = v;
}
else
{
GUIStyle s = new GUIStyle((GUIStyle)"TextFieldDropDownText");
Action makeStyleBold = () => {
s.fontStyle = FontStyle.Bold;
s.fontSize = 12;
};
IntegratedGUIBundleConfigurator.ValidateVariantName(v.Name, variantNames,
makeStyleBold,
makeStyleBold,
makeStyleBold);
var variantName = EditorGUILayout.TextField(v.Name, s);
if (variantName != v.Name)
{
using (new RecordUndoScope("Change Variant Name", node, true)){
v.Name = variantName;
}
}
}
}
}
if (GUILayout.Button("+"))
{
using (new RecordUndoScope("Add Variant", node, true)){
node.Data.AddVariant(AssetBundleGraphSettings.BUNDLECONFIG_VARIANTNAME_DEFAULT);
}
}
if (removing != null)
{
using (new RecordUndoScope("Remove Variant", node, true)){
// event must raise to remove connection associated with point
NodeGUIUtility.NodeEventHandler(new NodeEvent(NodeEvent.EventType.EVENT_CONNECTIONPOINT_DELETED, node, Vector2.zero, removing.ConnectionPoint));
node.Data.RemoveVariant(removing);
}
}
}
}