Repository URL to install this package:
Version:
1.0.0 ▾
|
using System.ComponentModel;
using UnityEngine;
namespace Fluctio.FluctioSim.EditorUtils.Gui
{
public class ColorScope : GUI.Scope
{
public enum BlendMode
{
Overwrite,
Multiply,
Add,
Substract
}
private readonly Color _colorBackup;
public ColorScope(Color color, BlendMode blendMode = BlendMode.Overwrite)
{
_colorBackup = GUI.color;
switch (blendMode)
{
case BlendMode.Overwrite:
GUI.color = color;
break;
case BlendMode.Multiply:
GUI.color *= color;
break;
case BlendMode.Add:
GUI.color += color;
break;
case BlendMode.Substract:
GUI.color -= color;
break;
default:
throw new InvalidEnumArgumentException(
nameof(blendMode),
(int)blendMode,
blendMode.GetType());
}
}
protected override void CloseScope()
{
GUI.color = _colorBackup;
}
}
}