/// <summary> /// Updates <see cref="ItemData.EditorLayerName"/>, while managing Undo. /// </summary> /// <param name="item">Tree layer element to update</param> /// <param name="layerName">New layer name</param> private static void ApplyLayerNameToItem(ILayerableItemBehavior item, string layerName) { if (item.EditorLayerName != layerName) { if (item is MonoBehaviour behaviour) { Undo.RecordObject(behaviour, $"Item {behaviour.name}: Change layer name from {item.EditorLayerName} to {layerName}"); } item.EditorLayerName = layerName; } }
private void AddToLayer(ILayerableItemBehavior item) { if (item == null) { return; } if (item.EditorLayerName == string.Empty) { item.EditorLayerName = $"Layer_{item.EditorLayer + 1}"; } if (!_layers.ContainsKey(item.EditorLayerName)) { _layers.Add(item.EditorLayerName, new List <MonoBehaviour>()); } _layers[item.EditorLayerName].Add((MonoBehaviour)item); }
/// <summary> /// Construct as <see cref="LayerTreeViewElementType.Item"/>. /// </summary> /// <param name="item">Game item behavior</param> public LayerTreeElement(ILayerableItemBehavior item) { Item = item; IsVisible = Item.EditorLayerVisibility; }