Example #1
0
 private void CreateLayersIfNeeded()
 {
     if (ReferenceEquals(_outlineLayers, null))
     {
         _outlineLayers      = ScriptableObject.CreateInstance <OutlineLayerCollection>();
         _outlineLayers.name = "OutlineLayers";
     }
 }
Example #2
0
 private void CreateLayersIfNeeded()
 {
     if (_outlineLayers is null)
     {
         _outlineLayers      = ScriptableObject.CreateInstance <OutlineLayerCollection>();
         _outlineLayers.name = "OutlineLayers";
     }
 }
Example #3
0
 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;
        }
Example #5
0
        /// <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;
            }
        }
Example #6
0
        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>()));
        }
Example #7
0
 private void Reset()
 {
     _outlineLayers = null;
 }
Example #8
0
 /// <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>();
 }
Example #10
0
 private void Reset()
 {
     _outlineLayers = null;
     _changed       = true;
 }
Example #11
0
 private void OnEnable()
 {
     _layers = (OutlineLayerCollection)target;
 }