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); }
//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; }
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(); }
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(); } }
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(); }
/// <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)); }
public bool SelectLayers(List <LayerDesc> layerDescs) { LayerSelected?.Invoke(this, new EventArgs()); return(true); }