private ValidationSuiteExtensionUI(VisualTreeAsset asset)
        {
            root = asset.CloneTree();
            string path       = EditorGUIUtility.isProSkin ? DarkStylePath : LightStylePath;
            var    styleSheet = EditorGUIUtility.Load(path) as StyleSheet;

            root.styleSheets.Add(styleSheet);
            Add(root);

            ValidateButton.clickable.clicked    += Validate;
            ViewResultsButton.clickable.clicked += ViewResults;
            ViewDiffButton.clickable.clicked    += ViewDiffs;
        }
        public CombatantListContainerElement(CombatSMEditorWindow _ownerWindow)
        {
            m_owner = _ownerWindow;

            VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/OTGCombatSystem/Editor/CombatSM/CombatantListContainerElement/CombatantListContainerElementTemplate.uxml");
            StyleSheet style = AssetDatabase.LoadAssetAtPath<StyleSheet>("Assets/OTGCombatSystem/Editor/CombatSM/CombatantListContainerElement/CombatantListContainerElementStyle.uss");

            ContainerElement = new VisualElement();
            visualTree.CloneTree(ContainerElement);
            ContainerElement.styleSheets.Add(style);

           
        }
Ejemplo n.º 3
0
    public void OnEnable()
    {
        utilityAIAgent = (UtilityAIAgent)target;
        rootElement    = new VisualElement();

        VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/UtilityAI/Scripts/Editor/Utility AI Agent Editor/UtilityAIAgentEditor.uxml");

        visualTree.CloneTree(rootElement);

        StyleSheet stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/UtilityAI/Scripts/Editor/Utility AI Agent Editor/UtilityAIAgentEditor.uss");

        rootElement.styleSheets.Add(stylesheet);
    }
Ejemplo n.º 4
0
        public virtual void SetupElements(VisualElement container, ShaderLibrary Lab)
        {
            VisualTreeAsset nodeAsset = AssetDBHelper.LoadAsset <VisualTreeAsset>(files.BaseType, files.UXML);
            StyleSheet      style     = AssetDBHelper.LoadAsset <StyleSheet>(files.BaseType, files.USS);
            var             tree      = nodeAsset.CloneTree();

            container.Add(tree);
            tree.name = TemplateName;
            UIRoot    = container;
            UIRoot.styleSheets.Add(style);
            this.lab = Lab;
            DefaultSetupElements();
        }
        /// <inheritdoc />
        protected override void BuildElementUI()
        {
            base.BuildElementUI();

            if (s_ValueTemplate == null)
            {
                s_ValueTemplate = GraphElementHelper.LoadUXML("ValueBadge.uxml");
            }

            s_ValueTemplate.CloneTree(this);
            m_TextElement = this.SafeQ <Label>("desc");
            m_Image       = this.SafeQ <Image>();
        }
Ejemplo n.º 6
0
        public SearchViewItem()
        {
            AddToClassList("SearchItem");
            styleSheets.Add(Resources.Load <StyleSheet>("SearchItemStyle"));
            VisualTreeAsset visualTree = Resources.Load <VisualTreeAsset>("SearchItem");

            visualTree.CloneTree(this);

            m_Label    = this.Q <Label>("Label");
            m_Icon     = this.Q("Icon");
            m_NextIcon = this.Q("NextIcon");
            tabIndex   = -1;
        }
Ejemplo n.º 7
0
        public static VisualElement[,] CreateGridButton(this VisualElement parent, int width, int heigth, VisualTreeAsset buttonTemplate, Action <int, int> onClicked = null)
        {
            return(parent.CreateGrid(width, heigth, (x, y) =>
            {
                //var template = buttonTemplate.CloneTree();
                var t = new VisualElement();
                var template = buttonTemplate.CloneTree();
                var button = template.Query <Button>().First();
                button.clickable.clicked += () => onClicked?.Invoke(x, y);

                return template;
            }));
        }
Ejemplo n.º 8
0
    private void CreateLoadMapBtn(string mapName)
    {
        MapButton mapButton = new MapButton();

        mapButton.m_mapDataName = mapName;
        m_mapButtons.Add(mapButton);

        var btn = m_mapBtn.CloneTree().Q <Button>();

        btn.clicked += mapButton.OnClicked;
        m_mapButtonsList.Add(btn);
        btn.Q <TextElement>().text = mapName;
    }
Ejemplo n.º 9
0
        private void OnEnable()
        {
            VisualTreeAsset   original  = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Scripts/Core/Edytor/DialogEditor/DialogEditor.uxml");
            TemplateContainer treeAsset = original.CloneTree();

            rootVisualElement.Add(treeAsset);

            StyleSheet styleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Scripts/Core/Edytor/DialogEditor/DialogEditorStyle.uss");

            rootVisualElement.styleSheets.Add(styleSheet);

            CreateEnemyListView();
        }
        public override VisualElement CreateInspectorGUI()
        {
            var root = base.CreateInspectorGUI();

            _randomVisualTree.CloneTree(root);

            UpdateMinMaxValues(root, ((RandomTimePackageSpawner)target).Range);

            root.Query <Label>(className: "range-value").ForEach(label => label.SetEnabled(false));
            root.Q <MinMaxSlider>().RegisterCallback <ChangeEvent <Vector2> >(evt => UpdateMinMaxValues(root, evt.newValue));

            return(root);
        }
Ejemplo n.º 11
0
        private void OnEnable()
        {
            _ruleCount      = -1;
            _activeRuleList = new List <Rule>();
            _availableIds   = new List <int>();

            // Reference to the root of the window.
            _root = rootVisualElement;

            // Instantiate contents
            _contents = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlMainPrefabWizard);
            _contents.CloneTree(_root);

            _rulesListView = _root.Q <ListView>(Constants.LabelListViewRulesList);

            // Single Rule Reference
            _singleRuleVisualTree = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlSingleRule);

            // Load Rules Button
            _loadRules = _root.Q <Button>(Constants.LabelButtonLoadRules);
            _loadRules.clickable.clicked += LoadRules;

            // Save Rules Button
            _saveRules = _root.Q <Button>(Constants.LabelButtonSaveRules);
            _saveRules.clickable.clicked += SaveRules;

            // Add Rule Button
            _addRule = _root.Q <Button>(Constants.LabelButtonAddRule);
            _addRule.clickable.clicked += AddNewRule;

            // Clear Rules Button
            _clearRules = _root.Q <Button>(Constants.LabelButtonClearRules);
            _clearRules.clickable.clicked += ClearRules;

            // Create Prefab Button
            _createPrefab = _root.Q <Button>(Constants.LabelButtonCreatePrefab);
            _createPrefab.clickable.clicked += CreatePrefabForSelectedMesh;

            // Log List View
            _logListView = _root.Q <ListView>(Constants.LabelListViewLog);
            _listEntryVisualTreeAsset = Resources.Load <VisualTreeAsset>(Constants.LabelUxmlLogEntry);
            _logListView.Clear();

            // ClearLog
            _clearLog = _root.Q <Button>(Constants.LabelButtonClearLog);
            _clearLog.clickable.clicked += ClearLog;

            // Version Label
            _labelVersion      = _root.Q <Label>(Constants.LabelLabelVersion);
            _labelVersion.text = Constants.VersionNumber;
        }
Ejemplo n.º 12
0
        // ######################## UNITY EVENT FUNCTIONS ######################## //

        #region UNITY EVENT FUNCTIONS

        public override VisualElement CreateInspectorGUI()
        {
            // load uxml
            VisualTreeAsset visualTreeAsset = Resources.Load <VisualTreeAsset>("PackageDefinitionInspector_layout");

            _assetPathElementAsset = Resources.Load <VisualTreeAsset>("PackageDefinitionInspector_assetPathElement");

            TemplateContainer visualTree = visualTreeAsset.CloneTree();

            // load styles
            visualTree.styleSheets.Add(Resources.Load <StyleSheet>("Styles"));
            visualTree.styleSheets.Add(Resources.Load <StyleSheet>("PackageDefinitionInspector_styles"));

            // get list container
            _assetListContainer = visualTree.Q("pathListAssetContainer");

            // get and set up target path button
            Button             targetPathButton   = visualTree.Q <Button>("targetPathButton");
            SerializedProperty targetPathProperty = serializedObject.FindProperty("_targetPath");

            targetPathButton.text = targetPathProperty.stringValue;
            targetPathButton.clickable.clicked += () =>
            {
                serializedObject.Update();
                targetPathProperty             = serializedObject.FindProperty("_targetPath");
                targetPathProperty.stringValue = EditorUtility.OpenFolderPanel("Select a location", Application.dataPath, "");
                targetPathButton.text          = targetPathProperty.stringValue;

                serializedObject.ApplyModifiedProperties();
            };

            // get and set up add asset button
            Button addAssetButton = visualTree.Q <Button>("addAssetButton");

            addAssetButton.clickable.clicked += () => AddAsset(false);

            // get and set up add folder button
            Button addFolderButton = visualTree.Q <Button>("addFolderButton");

            addFolderButton.clickable.clicked += () => AddAsset(true);

            // get and set up export button
            Button exportButton = visualTree.Q <Button>("exportButton");

            exportButton.clickable.clicked += (target as PackageDefinition).Export;

            visualTree.Bind(serializedObject);

            LoadAssets();
            return(visualTree);
        }
    void SetWindSetArtistTool()
    {
        VisualElement root = rootVisualElement;

        root.Clear();
        //Loads and clones our VisualTree inside the root.
        VisualTreeAsset quickToolVisualTree = Resources.Load <VisualTreeAsset>("WindArtistTool");

        quickToolVisualTree.CloneTree(root);
        root.styleSheets.Add(Resources.Load <StyleSheet>("WindArtistTool"));



        #region Wind Shader
        // Set Initial Values
        VisualElement windComponent = root.Q <VisualElement>(name: "Wind");
        if (windComponent != null)
        {
            Vector4Field windDirectionQuaternion = windComponent.Q <Vector4Field>(name: "WindDirection");
            windDirectionQuaternion.value = GetWindDirection();

            FloatField windScaleFloat = windComponent.Q <FloatField>(name: "WindScale");
            windScaleFloat.value = GetWindScale();

            MinMaxValue minMaxStrength = GetWindStrength();

            VisualElement windStrengthHolder = windComponent.Q <VisualElement>(name: "WinStrengthHolder");

            MinMaxSlider windStrengthSlider = windStrengthHolder.Q <MinMaxSlider>(name: "WindStrength");
            windStrengthSlider.highLimit = minMaxStrength.HighLimit;
            windStrengthSlider.lowLimit  = minMaxStrength.LowLimit;
            windStrengthSlider.value     = new Vector2(minMaxStrength.minValue, minMaxStrength.maxValue);

            windStrengthHolder.Q <Label>(name: "MinValue").text = "Min Value :" + minMaxStrength.minValue;
            windStrengthHolder.Q <Label>(name: "MaxValue").text = "Max Value :" + minMaxStrength.maxValue;

            FloatField windSpeedFloat = windComponent.Q <FloatField>(name: "WindSpeed");
            windSpeedFloat.value = GetWindSpeed();

            //Set Callbacks values
            windDirectionQuaternion.RegisterCallback <ChangeEvent <Vector4> >(ChangeWindDirection);
            windScaleFloat.RegisterCallback <ChangeEvent <float> >(ChangeWindScale);
            windStrengthSlider.RegisterCallback <ChangeEvent <Vector2> >(ChangeWindStrength);
            windSpeedFloat.RegisterCallback <ChangeEvent <float> >(ChangeWindSpeed);
        }

        #endregion

        root.Q <Button>(name: "SaveButton").clicked  += SaveButton;
        root.Q <Button>(name: "ResetButton").clicked += ResetToInitialSceneValues;
    }
Ejemplo n.º 14
0
        // ######################## UNITY EVENT FUNCTIONS ######################## //

        #region UNITY EVENT FUNCTIONS

        public void OnEnable()
        {
            // show as an utility window with a fixed size
            ShowUtility();
            minSize = new Vector2(300, 600);
            maxSize = minSize;

            // Import UXML
            VisualTreeAsset visualTreeAsset = Resources.Load <VisualTreeAsset>("ColorPickerWindow_layout");

            visualTreeAsset.CloneTree(rootVisualElement);

            // load styles
            rootVisualElement.styleSheets.Add(Resources.Load <StyleSheet>("ColorPickerWindow_styles"));
            rootVisualElement.styleSheets.Add(Resources.Load <StyleSheet>("Styles"));

            // get elements
            EnumField modeField = rootVisualElement.Q <EnumField>("modeField");

            _colorComparisonSwatch = rootVisualElement.Q <ColorComparisonSwatch>();
            _hlsWheel        = rootVisualElement.Q <ColorWheel>();
            _sliderContainer = rootVisualElement.Q("sliderContainer");
            _colorSliders[0] = rootVisualElement.Q <ColorSlider>("colorSlider1");
            _colorSliders[1] = rootVisualElement.Q <ColorSlider>("colorSlider2");
            _colorSliders[2] = rootVisualElement.Q <ColorSlider>("colorSlider3");
            _hexField        = rootVisualElement.Q <TextField>("hexField");

            // add alpha slider
            _alphaSlider = new ColorSlider();
            _alphaSlider.AddToClassList("color-slider");
            _alphaSlider.label     = "A";
            _alphaSlider.lowValue  = 0;
            _alphaSlider.highValue = 1;

            // register callbacks
            _colorComparisonSwatch.OnColorClicked += SetColor;
            _hlsWheel.OnColorChanged += UpdateColorFromHslWheel;
            _colorSliders[0].RegisterValueChangedCallback(UpdateColorFromSlider0);
            _colorSliders[1].RegisterValueChangedCallback(UpdateColorFromSlider1);
            _colorSliders[2].RegisterValueChangedCallback(UpdateColorFromSlider2);
            _alphaSlider.RegisterValueChangedCallback(UpdateAlpha);
            _hexField.RegisterCallback <FocusOutEvent>(UpdateColorFromHex);

            // initialize with hsl mode
            SetSliderMode(SliderMode.HSL);
            UpdateSliders();

            // initialize the mode field with the current mode and register to its callback
            modeField.Init(_mode);
            modeField.RegisterValueChangedCallback(evt => SetSliderMode((SliderMode)evt.newValue));
        }
Ejemplo n.º 15
0
    public override VisualElement CreateInspectorGUI()
    {
        rootElement.Clear();
        visualTree.CloneTree(rootElement);

        SetHeaderImage();
        SetDescription();
        CreatePlayerPropertyField();
        SetBuffImage();
        GetBuffActiveText();
        SetBuffButton();

        return(rootElement);
    }
    private void OnEnable()
    {
        VisualElement root = rootVisualElement;

        // load basic UIElements assets
        tree       = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/Editor Windows/Level Editor/LevelEditorWindow.uxml");
        stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Editor/Editor Windows/Level Editor/LevelEditorWindow.uss");

        // load the template for the grid cell
        cellTemplate = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Templates/LevelCell.uxml");

        root.styleSheets.Add(stylesheet);
        tree.CloneTree(root);
    }
    private VisualElement CreateSongFolderEntry(string songDir, int indexInList)
    {
        VisualElement result           = songFolderListEntryAsset.CloneTree();
        VisualElement warningContainer = result.Q <VisualElement>(R.UxmlNames.warningContainer);
        Label         warningLabel     = warningContainer.Q <Label>(R.UxmlNames.warningLabel);

        void CheckFolderExists(string path)
        {
            if (Directory.Exists(path))
            {
                warningContainer.HideByDisplay();
            }
            else if (File.Exists(path))
            {
                warningContainer.ShowByDisplay();
                warningLabel.text = "Not a folder.";
            }
            else
            {
                warningContainer.ShowByDisplay();
                warningLabel.text = "File does not exist.";
            }
        }

        TextField textField = result.Q <TextField>(R.UxmlNames.pathTextField);

        textField.value = songDir;
        PathTextFieldControl pathTextFieldControl = new(textField);

        pathTextFieldControl.ValueChangedEventStream
        .Subscribe(newValueUnescaped =>
        {
            settings.GameSettings.songDirs[indexInList] = newValueUnescaped;
            CheckFolderExists(newValueUnescaped);
        });

        Button deleteButton = result.Q <Button>(R.UxmlNames.deleteButton);

        deleteButton.text = TranslationManager.GetTranslation(R.Messages.delete);
        deleteButton.RegisterCallbackButtonTriggered(() =>
        {
            settings.GameSettings.songDirs.RemoveAt(indexInList);
            UpdateSongFolderList();
            backButton.Focus();
        });

        CheckFolderExists(songDir);

        return(result);
    }
    VisualTreeAsset SetUpProjectile()
    {
        VisualTreeAsset aAsset = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Editor/UXML Files/ProjectileEditor.uxml");

        mCurrentObjectElement = aAsset.CloneTree();
        mProjectileAnimList   = new ReorderableList(new List <AnimationData>(), typeof(AnimationData));
        mProjectileAnimList.drawHeaderCallback = (Rect aRect) => {
            EditorGUI.LabelField(aRect, "Move Animation Sprites");
        };
        mProjectileAnimList.drawElementCallback = UpdateAnimList;
        mProjectileAnimList.onAddCallback       = AddNewAnimation;
        mCurrentObjectElement.Q <IMGUIContainer>("projectile_animation_sprites").onGUIHandler = ProjectileOnGUI;
        return(aAsset);
    }
Ejemplo n.º 19
0
        public static ExcelItem CreateItem(string path)
        {
            if (mItemTreeAsset == null)
            {
                MessageBox.Error("ExcelItem描述文件null");
                return(null);
            }
            var root = mItemTreeAsset.CloneTree();
            var item = new ExcelItem(path, root);

            item.Init();

            return(item);
        }
Ejemplo n.º 20
0
    public void OnEnable()
    {
        starSystem  = (StarSystem)target;
        rootElement = new VisualElement();

        // Load in UXML template and USS styles, then apply them to the root element.
        VisualTreeAsset visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/Scripts/Editor/Star System Editor/StarSystemEditor.uxml");

        visualTree.CloneTree(rootElement);

        StyleSheet stylesheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/Scripts/Editor/Star System Editor/StarSystemEditor.uss");

        rootElement.styleSheets.Add(stylesheet);
    }
Ejemplo n.º 21
0
        MeshSyncSettingsProvider() : base(PROJECT_SETTINGS_MENU_PATH, SettingsScope.Project)
        {
            m_tabs       = new IMeshSyncSettingsTab[MeshSyncEditorConstants.MAX_SETTINGS_TAB];
            m_tabButtons = new Button[MeshSyncEditorConstants.MAX_SETTINGS_TAB];
            m_tabs[MeshSyncEditorConstants.GENERAL_SETTINGS_TAB]   = new GeneralSettingsTab();
            m_tabs[MeshSyncEditorConstants.DCC_TOOLS_SETTINGS_TAB] = new DCCToolsSettingsTab();

            //activateHandler is called when the user clicks on the Settings item in the Settings window.
            activateHandler = (string searchContext, VisualElement root) => {
                //Main Tree
                VisualTreeAsset main = UIElementsEditorUtility.LoadVisualTreeAsset(
                    Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "ProjectSettings_Main")
                    );
                main.CloneTree(root);


                //Tab Buttons
                VisualElement   tabsContainer     = root.Query <VisualElement>("TabsContainer");
                VisualTreeAsset tabButtonTemplate = UIElementsEditorUtility.LoadVisualTreeAsset(
                    Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "TabButtonTemplate")
                    );

                m_tabButtons[0] = CreateButton(tabButtonTemplate, "General Settings", OnGeneralSettingsTabClicked);
                m_tabButtons[1] = CreateButton(tabButtonTemplate, "DCC Tools", OnDCCToolsTabClicked);

                foreach (Button tabButton in m_tabButtons)
                {
                    tabsContainer.Add(tabButton);
                }

                //Style
                UIElementsEditorUtility.LoadAndAddStyle(
                    root.styleSheets,
                    Path.Combine(MeshSyncEditorConstants.PROJECT_SETTINGS_UIELEMENTS_PATH, "ProjectSettings_Style")
                    );

                m_content = root.Query <VisualElement>("Content");
                SetupTab(MeshSyncEditorConstants.GENERAL_SETTINGS_TAB);
            };

            deactivateHandler = () => {
                SetupTab(MeshSyncEditorConstants.UNINITIALIZED_TAB);
            };

            //TODO-sin: 2020-4-24 Fill in more keywords by using GetSearchKeywordsFromGUIContentProperties
            //or GetSearchKeywordsFromPath
            keywords = new HashSet <string>(new[] {
                "MeshSync",
            });
        }
Ejemplo n.º 22
0
    private void OnEnable()
    {
        VisualElement root = rootVisualElement;

        root.styleSheets.Add(Resources.Load <StyleSheet>("Quick_Style"));

        VisualTreeAsset tree = Resources.Load <VisualTreeAsset>("Quick_Main");

        tree.CloneTree(root);

        UQueryBuilder <Button> buttons = root.Query <Button>();

        buttons.ForEach(SetupButton);
    }
Ejemplo n.º 23
0
        private VisualElement CreatePackageInfo(PackageInfoDto package)
        {
            var element = packageTemplate.CloneTree();

            element.Q <Label>("package-displayName").text = package.displayName;
            element.Q <Label>("package-name").text        = package.name;
            element.Q <Label>("package-lastVersion").text = package.version;
            element.Q <TextElement>("package-desc").text  = package.description;
            element.Q <TextElement>("package-url").text   = package.projectUrl;

            element.Q <Button>("installMain").RegisterCallback <MouseUpEvent>(e => Install(package));

            return(element);
        }
Ejemplo n.º 24
0
        public void OnEnable()
        {
            uxmlAsset.CloneTree(rootVisualElement);

            var backgrounds = rootVisualElement.Query <ScrollView>(className: "scrollview");

            backgrounds.ForEach(scrollview => scrollview.Add(new Image {
                image = backgroundImage
            }));

            var csScrollview = rootVisualElement.Q <ScrollView>("cs-persistence-scrollview");

            csScrollview.viewDataKey = "csPersistence";
        }
        private DocumentationPackageManagerUI(VisualTreeAsset asset)
        {
#if UNITY_2019_1_OR_NEWER
            root = asset.CloneTree();
            var    resourcesRoot = "packages/com.unity.package-manager-doctools/Editor/Resources/";
            string path          = EditorGUIUtility.isProSkin ? resourcesRoot + "Styles/Dark.uss" : resourcesRoot + "Styles/Light.uss";
            var    styleSheet    = EditorGUIUtility.Load(path) as StyleSheet;
            root.styleSheets.Add(styleSheet);
#else
            root = asset.CloneTree(null);
            root.AddStyleSheetPath(EditorGUIUtility.isProSkin ? "Styles/Dark" : "Styles/Light");
#endif
            Add(root);

            if (!Unsupported.IsDeveloperMode())
            {
                Verbose.visible = false;
            }

            GenerateButton.clickable.clicked += GenerateDocClick;
            Verbose.RegisterValueChangedCallback(evt => VerbosityToggle());
            VerbosityToggle();
        }
Ejemplo n.º 26
0
        void RefreshClassListContainer()
        {
            ClearAddStyleValidationWarning();

            m_ClassListContainer.Clear();
            if (BuilderSharedStyles.IsSelectorElement(currentVisualElement))
            {
                return;
            }

            var builderWindow = m_PaneWindow as Builder;

            if (builderWindow == null)
            {
                return;
            }

            var documentRootElement = builderWindow.documentRootElement;

            foreach (var className in currentVisualElement.GetClasses())
            {
                m_ClassPillTemplate.CloneTree(m_ClassListContainer.contentContainer);
                var pill             = m_ClassListContainer.contentContainer.ElementAt(m_ClassListContainer.childCount - 1);
                var pillLabel        = pill.Q <Label>("class-name-label");
                var pillDeleteButton = pill.Q <Button>("delete-class-button");

                // Add ellipsis if the class name is too long.
                var classNameShortened = BuilderNameUtilities.CapStringLengthAndAddEllipsis(className, BuilderConstants.ClassNameInPillMaxLength);
                pillLabel.text = "." + classNameShortened;

                pillDeleteButton.userData = className;
                pillDeleteButton.clickable.clickedWithEventInfo += OnStyleClassDelete;

                // See if the class is in document as its own selector.
                var selector = BuilderSharedStyles.FindSelectorElement(documentRootElement, "." + className);
                pill.SetProperty(BuilderConstants.InspectorClassPillLinkedSelectorElementVEPropertyName, selector);
                var clickable = CreateClassPillClickableManipulator();
                pill.AddManipulator(clickable);
                if (selector == null)
                {
                    pill.AddToClassList(BuilderConstants.InspectorClassPillNotInDocumentClassName);
                    pill.tooltip = BuilderConstants.InspectorClassPillDoubleClickToCreate;
                }
                else
                {
                    pill.tooltip = BuilderConstants.InspectorClassPillDoubleClickToSelect;
                }
            }
        }
Ejemplo n.º 27
0
//----------------------------------------------------------------------------------------------------------------------

        MeshSyncProjectSettingsProvider() : base(PROJECT_SETTINGS_MENU_PATH, SettingsScope.Project)
        {
            m_tabs = new IMeshSyncSettingsTab[MeshSyncEditorConstants.MAX_SETTINGS_TAB];
            Button[] tabButtons = new Button[MeshSyncEditorConstants.MAX_SETTINGS_TAB];
            m_tabs[MeshSyncEditorConstants.SERVER_SETTINGS_TAB]             = new ServerSettingsTab();
            m_tabs[MeshSyncEditorConstants.SCENE_CACHE_PLAYER_SETTINGS_TAB] = new SceneCachePlayerSettingsTab();

            //activateHandler is called when the user clicks on the Settings item in the Settings window.
            activateHandler = (string searchContext, VisualElement root) => {
                //Main Tree
                VisualTreeAsset main = UIElementsEditorUtility.LoadVisualTreeAsset(Constants.MAIN_PROJECT_SETTINGS_PATH);
                main.CloneTree(root);

                //Tab Buttons
                VisualElement   tabsContainer = root.Query <VisualElement>("TabsContainer");
                VisualTreeAsset btnTemplate   = UIElementsEditorUtility.LoadVisualTreeAsset(Constants.TAB_BUTTON_TEMPLATE_PATH);

                tabButtons[0] = CreateButton(btnTemplate, Contents.Server, OnServerSettingsTabClicked);
                tabButtons[1] = CreateButton(btnTemplate, Contents.SceneCachePlayer, OnSceneCachePlayerTabClicked);

                foreach (Button tabButton in tabButtons)
                {
                    tabsContainer.Add(tabButton);
                }

                //Style
                UIElementsEditorUtility.LoadAndAddStyle(root.styleSheets, Constants.PROJECT_SETTINGS_STYLE_PATH);


                m_content = root.Query <VisualElement>("Content");
                UpdateSelectedTabButton(tabButtons[0]);
                SetupTab(MeshSyncEditorConstants.SERVER_SETTINGS_TAB);
            };


            deactivateHandler = () => {
                SetupTab(MeshSyncEditorConstants.UNINITIALIZED_TAB);
            };

            //keywords
            HashSet <string> meshSyncKeywords = new HashSet <string>(new[] { "MeshSync", });

            meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <MeshSyncProjectSettingsProvider.Contents>());
            meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <ServerSettingsTab.Contents>());
            meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <SceneCachePlayerSettingsTab.Contents>());
            meshSyncKeywords.UnionWith(GetSearchKeywordsFromGUIContentProperties <MeshSyncPlayerConfigSection.Contents>());

            keywords = meshSyncKeywords;
        }
Ejemplo n.º 28
0
        public ShaderItemUI(Shader sh, VisualTreeAsset treeAsset, string date)
        {
            this.shader      = sh;
            this.dateTimeStr = date;
            var shaderData = ShaderUtil.GetShaderData(sh);

#if UNITY_2019_1_OR_NEWER || UNITY_2019_OR_NEWER
            element = treeAsset.CloneTree();
#else
            element = treeAsset.CloneTree(null);
#endif

            element.Q <Foldout>("ShaderFold").text  = sh.name;
            element.Q <Foldout>("ShaderFold").value = false;
            // shader value
            element.Q <ObjectField>("ShaderVal").objectType = typeof(Shader);
            element.Q <ObjectField>("ShaderVal").value      = sh;

            var shaderSubShadersFold = element.Q <Foldout>("SubShaders");
            shaderSubShadersFold.text  = "SubShaders(" + shaderData.SubshaderCount + ")";
            shaderSubShadersFold.value = false;

            for (int i = 0; i < shaderData.SubshaderCount; ++i)
            {
                Foldout subShaderFold = new Foldout();
                var     subShader     = shaderData.GetSubshader(i);

                CreateSubShaderMenu(subShaderFold, i, subShader);
                shaderSubShadersFold.Add(subShaderFold);
            }
            // DumpBtn
            element.Q <Button>("DumpButton").clickable.clicked += () =>
            {
                DumpStart();
            };
        }
Ejemplo n.º 29
0
    private void CreateUiIssue(SongIssue issue)
    {
        VisualElement      visualElement      = editorIssueUi.CloneTree().Children().First();
        EditorIssueControl editorIssueControl = injector
                                                .WithRootVisualElement(visualElement)
                                                .WithBindingForInstance(issue)
                                                .CreateAndInject <EditorIssueControl>();

        noteAreaIssues.Add(visualElement);

        editorIssueControl.VisualElement.RegisterCallbackOneShot <GeometryChangedEvent>(evt =>
        {
            PositionEditorIssueControl(editorIssueControl.VisualElement, issue.StartBeat);
        });
    }
        //adds a new card to the deck on the left, ready to be used
        private IEnumerator AddCardToDeck(float delay = 0f) //TODO: pass in the CardData dynamically
        {
            yield return(new WaitForSecondsRealtime(delay));

            //create new card
            var tree = visualTreeCard.CloneTree();
            var card = tree.Q <CardElement>();

            GetBackupContainer().Add(card);

            card.Init(playersDeck.GetNextCardFromDeck());
            card.Scale(0.1f);
            card.AnimatedScale(0.7f, 0.2f);
            card.MoveTo(new Vector2(10, 10));
        }