日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Unity3D 随机颜色(RGB/HSV)

發布時間:2023/12/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unity3D 随机颜色(RGB/HSV) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unity3D 隨機顏色(RGB/HSV)

前言

? ? ? ? Unity中顏色這塊兒有RGB模式和HSV模式,之前大多數用的都是RGB模式,對于顏色這塊兒也沒有詳細的去了解。后來項目涉及到,要圖片飽和度一定,且可以隨機變換顏色,如下動圖效果(使用RGB模式)。但是這樣改的話,R、G、B三個值都在變化,不好確保它飽和度不變,只變顏色。

????????所以,就想著用HSV模式試試看, 把顏色面板的RGB模式切換為HSV模式(如下圖)。試了一下,使用HSV模式是可行的,設置好一定的飽和度后(即S值),只改變H值即可。

?

?核心代碼如下:

/// <summary>/// 隨機顏色/// </summary>/// <returns></returns>private Color RandomColor(){//隨機顏色的HSV值,飽和度不變,只改變H值//H、S、V三個值的范圍都是在0~1之間float h = Random.Range(0f, 1f);//隨機值float s = 0.3f;//設置飽和度為定值Color color = Color.HSVToRGB(h, s, 1);return color;}

最終效果如下:

?

?完整代碼:

using UnityEngine; using UnityEngine.UI;public class changeColor : MonoBehaviour {void Start () {InvokeRepeating("ChangeImageColor", 1, 1);}void ChangeImageColor(){GetComponent<Image>().color = RandomColor();}/// <summary>/// 隨機顏色/// </summary>/// <returns></returns>private Color RandomColor(){//隨機顏色的HSV值,飽和度不變,只改變H值//H、S、V三個值的范圍都是在0~1之間float h = Random.Range(0f, 1f);//隨機值float s = 0.3f;//設置飽和度為定值Color color = Color.HSVToRGB(h, s, 1);return color;}}

?其他:

Unity中的顏色有Color和Color32:

1、Color:0~1之間的值,包含0和1

????????eg:Color C1=new Color(1,1,1,1);

2、Color32:0~255之間的值,包含0和255

????????eg:?Color32?C2 = new Color32(255, 255, 255, 255);

HSV/HSVA參數分別是:

H?:?色調

S?: 飽和度

V?: 明度

A? :? 透明度(RGB/HSV有時寫成RGBA/HSVA,其中A都是代表透明度,A越小,圖片越趨于透明)

隨機改變RGB顏色:

private Color RandomColorRGB(){float r = Random.Range(0f, 1f);float g = Random.Range(0f, 1f);float b = Random.Range(0f, 1f);//float a = Random.Range(0f, 1f);//加透明度Color color = new Color(r, g, b);//Color color = new Color(r, g, b, a);//有透明通道需要隨機的使用該句return color;}

隨機改變HSV顏色:

private Color RandomColorHSV(){float h = Random.Range(0f, 1f);float s = Random.Range(0f, 1f);float v = Random.Range(0f, 1f);Color color = Color.HSVToRGB(h, s, v);return color;}

總結

以上是生活随笔為你收集整理的Unity3D 随机颜色(RGB/HSV)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。