private void OnAddLayer(ReorderableList list)
        {
            var layer = new OutlineLayer();

            Undo.RecordObject(_layers, "Add Layer");
            EditorUtility.SetDirty(_layers);

            _layers.Add(layer);
        }
        public void Remove_SetsCount()
        {
            var layer = new OutlineLayer();

            _layerCollection.Add(layer);
            _layerCollection.Remove(layer);

            Assert.Zero(_layerCollection.Count);
        }
        public void Contains_SearchesArgument()
        {
            var layer = new OutlineLayer();

            Assert.IsFalse(_layerCollection.Contains(layer));

            _layerCollection.Add(layer);

            Assert.IsTrue(_layerCollection.Contains(layer));
        }
        public void Remove_SetsChanged()
        {
            var layer = new OutlineLayer();

            _layerCollection.Add(layer);
            _layerCollection.AcceptChanges();
            _layerCollection.Remove(layer);

            Assert.IsTrue(_layerCollection.IsChanged);
        }
Exemplo n.º 5
0
        public static void RenderPreview(OutlineLayer layer, int layerIndex, bool showObjects)
        {
            if (layer != null)
            {
                var goIndex = 1;

                EditorGUILayout.BeginHorizontal();
                EditorGUI.indentLevel += 1;
                EditorGUILayout.PrefixLabel("Layer #" + layerIndex.ToString());
                EditorGUI.indentLevel -= 1;

                if (layer.Enabled)
                {
                    EditorGUILayout.LabelField(layer.OutlineRenderMode == OutlineRenderFlags.None ? layer.OutlineRenderMode.ToString() : string.Format("Blurred ({0})", layer.OutlineIntensity), GUILayout.MaxWidth(70));
                    EditorGUILayout.IntField(layer.OutlineWidth, GUILayout.MaxWidth(100));
                    EditorGUILayout.ColorField(layer.OutlineColor, GUILayout.MinWidth(100));
                }
                else
                {
                    EditorGUILayout.LabelField("Disabled.");
                }

                EditorGUILayout.EndHorizontal();

                if (showObjects)
                {
                    if (layer.Count > 0)
                    {
                        foreach (var go in layer)
                        {
                            EditorGUI.indentLevel += 2;
                            EditorGUILayout.ObjectField("#" + goIndex.ToString(), go, typeof(GameObject), true);
                            EditorGUI.indentLevel -= 2;

                            goIndex++;
                        }
                    }
                    else
                    {
                        EditorGUI.indentLevel += 2;
                        EditorGUILayout.LabelField("No objects.");
                        EditorGUI.indentLevel -= 2;
                    }
                }
            }
            else
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUI.indentLevel += 1;
                EditorGUILayout.PrefixLabel("Layer #" + layerIndex.ToString());
                EditorGUI.indentLevel -= 1;
                EditorGUILayout.LabelField("Null");
                EditorGUILayout.EndHorizontal();
            }
        }
        public void IsChanged_TracksLayerChanges()
        {
            var layer = new OutlineLayer();

            _layerCollection.Add(layer);
            _layerCollection.AcceptChanges();

            layer.OutlineWidth = 17;

            Assert.IsTrue(_layerCollection.IsChanged);
        }
        public void Add_ThrowsIfLayerBelongsToAnotherCollection()
        {
            var anotherLayerCollection = ScriptableObject.CreateInstance <OutlineLayerCollection>();
            var layer = new OutlineLayer();

            try
            {
                anotherLayerCollection.Add(layer);
                Assert.Throws <InvalidOperationException>(() => _layerCollection.Add(layer));
            }
            finally
            {
                UnityEngine.Object.DestroyImmediate(anotherLayerCollection);
            }
        }
        public void Contains_DoesNotSetChanged()
        {
            var layer = new OutlineLayer();

            _layerCollection.AcceptChanges();
            _layerCollection.Contains(layer);

            Assert.IsFalse(_layerCollection.IsChanged);

            _layerCollection.Add(layer);
            _layerCollection.AcceptChanges();
            _layerCollection.Contains(layer);

            Assert.IsFalse(_layerCollection.IsChanged);
        }
Exemplo n.º 9
0
        public static void RenderPreview(OutlineLayer layer, int layerIndex, bool showObjects)
        {
            if (layer != null)
            {
                var goIndex = 1;

                EditorGUILayout.BeginHorizontal();
                EditorGUI.indentLevel += 1;
                EditorGUILayout.PrefixLabel("Layer #" + layerIndex.ToString());
                EditorGUI.indentLevel -= 1;
                EditorGUILayout.IntField(layer.OutlineWidth, GUILayout.MaxWidth(100));
                EditorGUILayout.ColorField(layer.OutlineColor, GUILayout.MinWidth(100));
                EditorGUILayout.EndHorizontal();

                if (showObjects)
                {
                    if (layer.Count > 0)
                    {
                        foreach (var go in layer)
                        {
                            EditorGUI.indentLevel += 2;
                            EditorGUILayout.ObjectField("#" + goIndex.ToString(), go, typeof(GameObject), true);
                            EditorGUI.indentLevel -= 2;

                            goIndex++;
                        }
                    }
                    else
                    {
                        EditorGUI.indentLevel += 2;
                        EditorGUILayout.LabelField("No objects.");
                        EditorGUI.indentLevel -= 2;
                    }
                }
            }
            else
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUI.indentLevel += 1;
                EditorGUILayout.PrefixLabel("Layer #" + layerIndex.ToString());
                EditorGUI.indentLevel -= 1;
                EditorGUILayout.LabelField("Null");
                EditorGUILayout.EndHorizontal();
            }
        }
Exemplo n.º 10
0
        public void SortedLayers_IsSortedByPriority()
        {
            var layer1 = new OutlineLayer()
            {
                Priority = 2
            };

            var layer2 = new OutlineLayer();
            var layer3 = new OutlineLayer();

            _layerCollection.Add(layer1);
            _layerCollection.Add(layer2);
            _layerCollection.Add(layer3);

            Assert.AreEqual(layer2, _layerCollection.SortedLayers[0]);
            Assert.AreEqual(layer3, _layerCollection.SortedLayers[1]);
            Assert.AreEqual(layer1, _layerCollection.SortedLayers[2]);
        }
Exemplo n.º 11
0
 public void Init()
 {
     _layer = new OutlineLayer();
     Init(_layer);
 }
Exemplo n.º 12
0
 public void Init()
 {
     _layer = new OutlineLayer("TestLayer");
     Init(_layer);
 }