Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
ai.fluctio.fluctio-sim / EditorUtils / Gui / ColorScope.cs
Size: Mime:
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;
		}
	}
}