unity3d ColorHex转换成color颜色

本文介绍了如何在Unity中将颜色对象与十六进制字符串相互转换的方法。包括ColorToHex函数,用于从Color对象生成十六进制字符串;HexToColor函数,用于从十六进制字符串解析出Color对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例如将 #00FFF4FF 转换成 Color,或者将一个color转换成#00FFF4FF格式

  /// <summary>
  /// color 转换hex
  /// </summary>
  /// <param name="color"></param>
  /// <returns></returns>
  public static string ColorToHex(Color color)
  {
      int r = Mathf.RoundToInt(color.r * 255.0f);
      int g = Mathf.RoundToInt(color.g * 255.0f);
      int b = Mathf.RoundToInt(color.b * 255.0f);
      int a = Mathf.RoundToInt(color.a * 255.0f);
      string hex = string.Format("{0:X2}{1:X2}{2:X2}{3:X2}", r, g, b, a);
      return hex;
  }

  /// <summary>
  /// hex转换到color
  /// </summary>
  /// <param name="hex"></param>
  /// <returns></returns>
  public Color HexToColor(string hex)
  {
      byte br = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
      byte bg = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
      byte bb = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
      byte cc = byte.Parse(hex.Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
      float r = br / 255f;
      float g = bg / 255f;
      float b = bb / 255f;
      float a = cc / 255f;
      return new Color(r, g, b, a);
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值