Ejemplo n.º 1
0
        private void OnLayerSelected(object sender, EventArgs e)
        {
            Button bnSender = sender as Button;

            // *** single selection
            if (SingleSelection)
            {
                // -> unselect other buttons
                foreach (Control ctrl in Controls)
                {
                    Button bt = ctrl as Button;
                    if (bt != bnSender)
                    {
                        LayerItem btItem = bt.Tag as LayerItem;
                        if (btItem.Selected)
                        {
                            btItem.Selected = false;
                            bt.Image        = TryGenerateLayerImage(btItem.Layer, szButtons, btItem.Selected);
                        }
                    }
                }
            }
            // ***
            LayerItem lItem    = bnSender.Tag as LayerItem;
            bool      selected = !lItem.Selected;

            bnSender.Image = TryGenerateLayerImage(lItem.Layer, szButtons, selected);
            bnSender.Tag   = new LayerItem(lItem.Layer, selected);
            LayerSelected?.Invoke(this, e);
        }
Ejemplo n.º 2
0
 //Initialized the Layers dictionary
 private void CreateFirstTime()
 {
     foreach (var s in UnityEditorInternal.InternalEditorUtility.layers)
     {
         LayerSelected l = CreateNewLayer(s);
         Layers.Add(l.name, l);
     }
 }
 private LayerSelected CreateNewLayer(string name)
 {
     LayerSelected l = new LayerSelected();
     l.enabled = false;
     l.name = name;
     l.color = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f),
        Random.Range(0.0f, 1.0f));
     return l;
 }
Ejemplo n.º 4
0
        private LayerSelected CreateNewLayer(string name)
        {
            LayerSelected l = new LayerSelected();

            l.enabled = false;
            l.name    = name;
            l.color   = new Color(Random.Range(0.0f, 1.0f), Random.Range(0.0f, 1.0f),
                                  Random.Range(0.0f, 1.0f));
            return(l);
        }
        private void LayersEditor(LayerSelected layer)
        {
            EditorGUILayout.BeginHorizontal();

            var style = new GUIStyle();
            style.fontStyle = layer.enabled ? FontStyle.Bold : FontStyle.Normal;

            EditorGUILayout.LabelField(layer.name, style, GUILayout.Width(110));
            if (layer.enabled = EditorGUILayout.Toggle(layer.enabled, GUILayout.Width(50))) { Save(); }
            layer.color = EditorGUILayout.ColorField(layer.color, GUILayout.Width(60));

            if (layer.activeIcon = EditorGUILayout.Toggle(layer.activeIcon,GUILayout.Width(50)))
            {
                EditorApplication.RepaintHierarchyWindow();
                Save();
            }

            EditorGUILayout.EndHorizontal();
        }
Ejemplo n.º 6
0
        private void Load()
        {
            //copy of Layers, to remove unused form previous save
            Dictionary <string, LayerSelected> tempLayers = new Dictionary <string, LayerSelected>();

            try
            {
                var data   = EditorPrefs.GetString(PrefsKey);
                var bytes  = System.Convert.FromBase64String(data);
                var stream = new MemoryStream(bytes);

                var formatter = new BinaryFormatter();
                tempLayers = (Dictionary <string, LayerSelected>)formatter.Deserialize(stream);

                Layers.Clear();

                if (tempLayers.Count == 0)
                {
                    CreateFirstTime();
                    return;
                }
                //Remove rows from loaded data (Layers), that are not specified in Editor's layers
                foreach (var s in UnityEditorInternal.InternalEditorUtility.layers)
                {
                    if (tempLayers.ContainsKey(s))
                    {
                        Layers.Add(s, tempLayers[s]);
                        Layers[s].enabled = false;
                    }
                    else
                    {
                        LayerSelected l = CreateNewLayer(s);
                        Layers.Add(l.name, l);
                    }
                }
            }
            catch (Exception ex)
            {
                CreateFirstTime();
            }
        }
Ejemplo n.º 7
0
        private void LayersEditor(LayerSelected layer)
        {
            EditorGUILayout.BeginHorizontal();

            var style = new GUIStyle();

            style.fontStyle = layer.enabled ? FontStyle.Bold : FontStyle.Normal;

            EditorGUILayout.LabelField(layer.name, style, GUILayout.Width(110));
            if (layer.enabled = EditorGUILayout.Toggle(layer.enabled, GUILayout.Width(50)))
            {
                Save();
            }
            layer.color = EditorGUILayout.ColorField(layer.color, GUILayout.Width(60));

            if (layer.activeIcon = EditorGUILayout.Toggle(layer.activeIcon, GUILayout.Width(50)))
            {
                EditorApplication.RepaintHierarchyWindow();
                Save();
            }

            EditorGUILayout.EndHorizontal();
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Fires the LayerSelected event.
 /// </summary>
 /// <param name="sender">Sender that raised the event.</param>
 /// <param name="selected">Indicates whether the layer is selected.</param>
 protected virtual void OnLayerSelected(ILayer sender, bool selected)
 {
     LayerSelected?.Invoke(this, new LayerSelectedEventArgs(sender, selected));
 }
Ejemplo n.º 9
0
 public bool SelectLayers(List <LayerDesc> layerDescs)
 {
     LayerSelected?.Invoke(this, new EventArgs());
     return(true);
 }