Skip to content

Commit 726ee12

Browse files
committed
Merge branch 'release/0.7.0'
2 parents 31e34e3 + 22c016e commit 726ee12

22 files changed

+661
-702
lines changed

Assets/Examples/Prefabs/TestOutlineLayers.asset

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,24 @@ MonoBehaviour:
1919
_outlineWidth: 5
2020
_outlineIntensity: 2
2121
_outlineMode: 0
22+
_name:
23+
_zOrder: 0
2224
_enabled: 1
2325
- _settings:
2426
_outlineSettings: {fileID: 0}
2527
_outlineColor: {r: 1, g: 1, b: 0, a: 1}
2628
_outlineWidth: 15
2729
_outlineIntensity: 2
2830
_outlineMode: 1
31+
_name:
32+
_zOrder: 0
2933
_enabled: 1
3034
- _settings:
3135
_outlineSettings: {fileID: 0}
3236
_outlineColor: {r: 1, g: 0, b: 1, a: 1}
3337
_outlineWidth: 4
3438
_outlineIntensity: 2
3539
_outlineMode: 0
40+
_name:
41+
_zOrder: 0
3642
_enabled: 1

Assets/Examples/Scripts/OutlineEffectBuilder.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ private void Awake()
4747
_outlineEffect.OutlineLayers.Add(_outlineLayer);
4848
}
4949
}
50+
51+
foreach (var go in _outlineGos)
52+
{
53+
if (go)
54+
{
55+
_outlineLayer.Add(go);
56+
}
57+
}
5058
}
5159

5260
private void OnValidate()

Assets/Plugins/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace UnityFx.Outline
99
/// <summary>
1010
/// Defines outline settings.
1111
/// </summary>
12-
public interface IOutlineSettings
12+
public interface IOutlineSettings : IEquatable<IOutlineSettings>
1313
{
1414
/// <summary>
1515
/// Gets or sets outline color.

Assets/Plugins/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,11 @@ private void Update()
171171

172172
if (_outlineResources != null && _renderers != null && (_outlineSettings.IsChanged || _commandBuffer.sizeInBytes == 0))
173173
{
174+
_commandBuffer.Clear();
175+
174176
using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget))
175177
{
176-
renderer.RenderSingleObject(_renderers, _outlineSettings.OutlineMaterials);
178+
renderer.Render(_renderers, _outlineSettings.OutlineResources, _outlineSettings);
177179
}
178180

179181
_outlineSettings.AcceptChanges();
@@ -297,6 +299,16 @@ public OutlineMode OutlineMode
297299

298300
#endregion
299301

302+
#region IEquatable
303+
304+
/// <inheritdoc/>
305+
public bool Equals(IOutlineSettings other)
306+
{
307+
return OutlineSettings.Equals(_outlineSettings, other);
308+
}
309+
310+
#endregion
311+
300312
#region implementation
301313

302314
private void RemoveDestroyedCameras()

Assets/Plugins/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -264,17 +264,15 @@ private void Reset()
264264

265265
private void FillCommandBuffer()
266266
{
267+
_commandBuffer.Clear();
268+
267269
if (_outlineResources && _outlineResources.IsValid)
268270
{
269271
using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget))
270272
{
271273
_outlineLayers.Render(renderer, _outlineResources);
272274
}
273275
}
274-
else
275-
{
276-
_commandBuffer.Clear();
277-
}
278276

279277
_changed = false;
280278

Assets/Plugins/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs

Lines changed: 42 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,25 @@ public bool TryGetRenderers(GameObject go, out ICollection<Renderer> renderers)
210210
return false;
211211
}
212212

213+
/// <summary>
214+
/// Renders the layers.
215+
/// </summary>
216+
public void Render(OutlineRenderer renderer, OutlineResources resources)
217+
{
218+
if (_enabled)
219+
{
220+
_settings.SetResources(resources);
221+
222+
foreach (var kvp in _outlineObjects)
223+
{
224+
if (kvp.Key && kvp.Key.activeInHierarchy)
225+
{
226+
renderer.Render(kvp.Value, _settings.OutlineResources, _settings);
227+
}
228+
}
229+
}
230+
}
231+
213232
#endregion
214233

215234
#region internals
@@ -257,22 +276,6 @@ internal void SetCollection(OutlineLayerCollection collection)
257276
}
258277
}
259278

260-
internal void Render(OutlineRenderer renderer, OutlineResources resources)
261-
{
262-
if (_enabled)
263-
{
264-
_settings.SetResources(resources);
265-
266-
foreach (var kvp in _outlineObjects)
267-
{
268-
if (kvp.Key && kvp.Key.activeInHierarchy)
269-
{
270-
renderer.RenderSingleObject(kvp.Value, _settings.OutlineMaterials);
271-
}
272-
}
273-
}
274-
}
275-
276279
#endregion
277280

278281
#region IOutlineSettingsEx
@@ -452,8 +455,19 @@ public void AcceptChanges()
452455

453456
#endregion
454457

458+
#region IEquatable
459+
460+
/// <inheritdoc/>
461+
public bool Equals(IOutlineSettings other)
462+
{
463+
return OutlineSettings.Equals(this, other);
464+
}
465+
466+
#endregion
467+
455468
#region Object
456469

470+
/// <inheritdoc/>
457471
public override string ToString()
458472
{
459473
var text = new StringBuilder();
@@ -496,6 +510,18 @@ public override string ToString()
496510
return string.Format("{0}", text);
497511
}
498512

513+
/// <inheritdoc/>
514+
public override bool Equals(object other)
515+
{
516+
return OutlineSettings.Equals(this, other as IOutlineSettings);
517+
}
518+
519+
/// <inheritdoc/>
520+
public override int GetHashCode()
521+
{
522+
return base.GetHashCode();
523+
}
524+
499525
#endregion
500526

501527
#region implementation

Assets/Plugins/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,24 @@ public OutlineLayer[] SortedLayers
4747
{
4848
get
4949
{
50-
UpdateSortedLayersIdNeeded();
50+
UpdateSortedLayersIfNeeded();
5151
return _sortedLayers.ToArray();
5252
}
5353
}
5454

55+
/// <summary>
56+
/// Renders all layers.
57+
/// </summary>
58+
public void Render(OutlineRenderer renderer, OutlineResources resources)
59+
{
60+
UpdateSortedLayersIfNeeded();
61+
62+
foreach (var layer in _sortedLayers)
63+
{
64+
layer.Render(renderer, resources);
65+
}
66+
}
67+
5568
#endregion
5669

5770
#region internals
@@ -78,16 +91,6 @@ internal void UpdateChanged()
7891
}
7992
}
8093

81-
internal void Render(OutlineRenderer renderer, OutlineResources resources)
82-
{
83-
UpdateSortedLayersIdNeeded();
84-
85-
foreach (var layer in _sortedLayers)
86-
{
87-
layer.Render(renderer, resources);
88-
}
89-
}
90-
9194
#endregion
9295

9396
#region ScriptableObject
@@ -327,7 +330,7 @@ public void AcceptChanges()
327330

328331
#region implementation
329332

330-
private void UpdateSortedLayersIdNeeded()
333+
private void UpdateSortedLayersIfNeeded()
331334
{
332335
if (_orderChanged)
333336
{

0 commit comments

Comments
 (0)