コード例 #1
0
        private void DoInspectorBundlizerGUI(NodeGUI node)
        {
            if (node.bundleNameTemplate == null)
            {
                return;
            }

            EditorGUILayout.HelpBox("Bundlizer: Create asset bundle settings with given group of assets.", MessageType.Info);
            UpdateNodeName(node);

            GUILayout.Space(10f);

            node.currentPlatform = UpdateCurrentPlatform(node.currentPlatform);

            using (new EditorGUILayout.VerticalScope(GUI.skin.box)) {
                var bundleNameTemplate = EditorGUILayout.TextField(
                    "Bundle Name Template",
                    SystemDataUtility.GetPlatformValue(
                        node.bundleNameTemplate.ReadonlyDict(),
                        node.currentPlatform
                        ).ToString()
                    ).ToLower();

                IntegratedGUIBundlizer.ValidateBundleNameTemplate(
                    bundleNameTemplate,
                    () => {
//						EditorGUILayout.HelpBox("No Bundle Name Template set.", MessageType.Error);
                }
                    );

                if (bundleNameTemplate != SystemDataUtility.GetPlatformValue(
                        node.bundleNameTemplate.ReadonlyDict(),
                        node.currentPlatform
                        ).ToString()
                    )
                {
                    node.BeforeSave();
                    node.bundleNameTemplate.Add(SystemDataUtility.CreateKeyNameFromString(node.currentPlatform), bundleNameTemplate);
                    node.Save();
                }

                GUILayout.Label("Variants:");
                for (int i = 0; i < node.variants.Keys.Count; ++i)
                {
                    var inputConnectionId = node.variants.Keys[i];

                    using (new GUILayout.HorizontalScope()) {
                        if (GUILayout.Button("-", GUILayout.Width(30)))
                        {
                            node.BeforeSave();
                            node.variants.Remove(inputConnectionId);
                            node.DeleteInputPoint(inputConnectionId);
                        }
                        else
                        {
                            var variantName = node.variants.Values[i];

                            GUIStyle s             = new GUIStyle((GUIStyle)"TextFieldDropDownText");
                            Action   makeStyleBold = () => {
                                s.fontStyle = FontStyle.Bold;
                                s.fontSize  = 12;
                            };

                            IntegratedGUIBundlizer.ValidateVariantName(variantName, node.variants.Values,
                                                                       makeStyleBold,
                                                                       makeStyleBold,
                                                                       makeStyleBold);

                            variantName = EditorGUILayout.TextField(variantName, s);

                            if (variantName != node.variants.Values[i])
                            {
                                node.BeforeSave();
                                node.variants.Values[i] = variantName;
                                node.RenameInputPoint(inputConnectionId, variantName);
                            }
                        }
                    }
                }

                if (GUILayout.Button("+"))
                {
                    node.BeforeSave();
                    var newid = Guid.NewGuid().ToString();
                    node.variants.Add(newid, AssetBundleGraphSettings.BUNDLIZER_VARIANTNAME_DEFAULT);
                    node.AddInputPoint(newid, AssetBundleGraphSettings.BUNDLIZER_VARIANTNAME_DEFAULT);
                }
            }

            UpdateDeleteSetting(node);
        }