private void CreateLayersIfNeeded() { if (ReferenceEquals(_outlineLayers, null)) { _outlineLayers = ScriptableObject.CreateInstance <OutlineLayerCollection>(); _outlineLayers.name = "OutlineLayers"; } }
private void CreateLayersIfNeeded() { if (_outlineLayers is null) { _outlineLayers = ScriptableObject.CreateInstance <OutlineLayerCollection>(); _outlineLayers.name = "OutlineLayers"; } }
internal void SetCollection(OutlineLayerCollection collection) { if (_parentCollection == null || collection == null || _parentCollection == collection) { _parentCollection = collection; } else { throw new InvalidOperationException("OutlineLayer can only belong to a single OutlineLayerCollection."); } }
private void OnEnable() { _layers = (OutlineLayerCollection)target; _layersProp = serializedObject.FindProperty("_layers"); _layersList = new ReorderableList(serializedObject, _layersProp, true, true, true, true); _layersList.drawElementCallback += OnDrawLayer; _layersList.drawHeaderCallback += OnDrawHeader; _layersList.elementHeightCallback += OnGetElementHeight; _layersList.onAddCallback += OnAddLayer; _layersList.onRemoveCallback += OnRemoveLayer; }
/// <summary> /// Shares <see cref="OutlineLayers"/> with another <see cref="OutlineEffect"/> instance. /// </summary> /// <param name="other">Effect to share <see cref="OutlineLayers"/> with.</param> /// <seealso cref="OutlineLayers"/> public void ShareLayersWith(OutlineEffect other) { if (other) { if (_outlineLayers == null) { _outlineLayers = ScriptableObject.CreateInstance <OutlineLayerCollection>(); } other._outlineLayers = _outlineLayers; other._changed = true; } }
public void Add_FiltersRenderesByLayer() { var go = new GameObject("r1", typeof(MeshRenderer)); var go2 = new GameObject("r2", typeof(MeshRenderer)); var layers = new OutlineLayerCollection(); layers.IgnoreLayerMask = 1 << LayerMask.NameToLayer("TransparentFX"); layers.Add(_layer); go2.layer = LayerMask.NameToLayer("TransparentFX"); go2.transform.SetParent(go.transform, false); _layer.Add(go); _layer.TryGetRenderers(go, out var r); Assert.AreEqual(1, r.Count); Assert.IsTrue(r.Contains(go.GetComponent <Renderer>())); Assert.IsFalse(r.Contains(go2.GetComponent <Renderer>())); }
private void Reset() { _outlineLayers = null; }
/// <summary> /// Initializes a new instance of the <see cref="OutlineLayer"/> class. /// </summary> internal OutlineLayer(OutlineLayerCollection parentCollection) { _parentCollection = parentCollection; }
public void Init() { _layerCollection = ScriptableObject.CreateInstance <OutlineLayerCollection>(); }
private void Reset() { _outlineLayers = null; _changed = true; }
private void OnEnable() { _layers = (OutlineLayerCollection)target; }