Files
Outline-Toolkit/Runtime/Scripts/OutlineSettingsWithLayerMask.cs
2025-07-20 21:01:09 +08:00

72 lines
1.3 KiB
C#

// Copyright (C) 2019-2021 Alexander Bogarsukov. All rights reserved.
// See the LICENSE.md file in the project root for more information.
using System;
using UnityEngine;
namespace UnityFx.Outline
{
[Serializable]
internal class OutlineSettingsWithLayerMask : OutlineSettingsInstance
{
#region data
#pragma warning disable 0649
// NOTE: There are custom editors for public components, so no need to show these in default inspector.
[SerializeField, HideInInspector]
private OutlineFilterMode _filterMode;
[SerializeField, HideInInspector]
private LayerMask _layerMask;
[SerializeField, HideInInspector]
private uint _renderingLayerMask = 1;
#pragma warning restore 0649
#endregion
#region interface
public int OutlineLayerMask
{
get
{
if (_filterMode == OutlineFilterMode.UseLayerMask)
{
return _layerMask;
}
if (_filterMode == OutlineFilterMode.UseRenderingLayerMask)
{
return -1;
}
return 0;
}
}
public uint OutlineRenderingLayerMask
{
get
{
if (_filterMode == OutlineFilterMode.UseLayerMask)
{
return uint.MaxValue;
}
if (_filterMode == OutlineFilterMode.UseRenderingLayerMask)
{
return _renderingLayerMask;
}
return 0;
}
}
#endregion
#region implementation
#endregion
}
}