AsdStudio_JockerScript/Assets/JOKER/Scripts/Novel/Libs/ColorConverter.cs
using UnityEngine;

public class ColorX {

	private static string GetHex(int num) {
		const string alpha = "0123456789ABCDEF";
		string ret = "" + alpha[num];
		return ret;
	}

	private static int HexToInt(char hexChar) {
		switch (hexChar) {
		case '0': return 0;
		case '1': return 1;
		case '2': return 2;
		case '3': return 3;
		case '4': return 4;
		case '5': return 5;
		case '6': return 6;
		case '7': return 7;
		case '8': return 8;
		case '9': return 9;
		case 'A': return 10;
		case 'B': return 11;
		case 'C': return 12;
		case 'D': return 13;
		case 'E': return 14;
		case 'F': return 15;
		}
		return -1;
	}

	public static string RGBToHex(Color color) {

		float red = color.r * 255;
		float green = color.g * 255;
		float blue = color.b * 255;

		string a = GetHex(Mathf.FloorToInt(red / 16));
		string b = GetHex(Mathf.RoundToInt(red) % 16);
		string c = GetHex(Mathf.FloorToInt(green / 16));
		string d = GetHex(Mathf.RoundToInt(green) % 16);
		string e = GetHex(Mathf.FloorToInt(blue / 16));
		string f = GetHex(Mathf.RoundToInt(blue) % 16);

		return a + b + c + d + e + f;
	}

	public static Color HexToRGB(string color) {

		color = color.Replace ("#", "");

		float red = (HexToInt(color[1]) + HexToInt(color[0]) * 16f) / 255f;
		float green = (HexToInt(color[3]) + HexToInt(color[2]) * 16f) / 255f;
		float blue = (HexToInt(color[5]) + HexToInt(color[4]) * 16f) / 255f;
		Color finalColor = new Color { r = red, g = green, b = blue, a = 1 };
		return finalColor;
	}

}