2025年Unity 如何使随机颜色更**

Unity 如何使随机颜色更**Unity 如何使随机颜色更** 先上对比图 RGB 都在 0 255 之间随机 0 255 0 255 0 255 RGB 都在 150 255 之间随机 就是偏灰白的 150 255 150 255 150 255 RGB 随机分配这 3 个值 255 150 150 250 随机 就会粉**嫩的 如 255 150 200 150 170

大家好,我是讯享网,很高兴认识大家。

Unity 如何使随机颜色更**

先上对比图:
  1. ↓RGB都在0-255之间随机 (0-255, 0-255, 0-255)
    在这里插入图片描述
    讯享网
  2. ↓RGB都在150-255之间随机, 就是偏灰白的 (150-255, 150-255, 150-255)
    在这里插入图片描述
  3. ↓RGB随机分配这3个值: 255, 150, 150-250(随机), 就会粉**嫩的
    如: (255, 150, 200), (150, 170, 255), (240, 255, 150)等
    在这里插入图片描述

代码:

方法1↓ 直接手写switch, 一共6种分配方式

 float r, g, b; Color GetRandomColor() { 
    //定义3个颜色备用 float c1 = 1f; float c2 = 150 / 255f; float c3 = Random.Range(150 / 255f, 1f); //将3个颜色随机分配给R,G,B int choose = Random.Range(0, 6); switch (choose) { 
    case 0: r = c1; g = c2; b = c3; break; case 1: r = c1; g = c3; b = c2; break; case 2: r = c2; g = c1; b = c3; break; case 3: r = c2; g = c3; b = c1; break; case 4: r = c3; g = c1; b = c2; break; case 5: r = c3; g = c2; b = c1; break; } return new Color(r, g, b); } 

讯享网

方法2↓ 条条大路通罗马, 用列表也能达到同样的效果, 用的是Add和Remove

讯享网 //定义3个颜色备用 float c1 = 1f; float c2 = 150 / 255f; float c3 = Random.Range(150 / 255f, 1f); //将3个颜色随机分配给R,G,B List<float> ListRandom = new List<float>() { 
    c1, c2, c3 }; List<float> ListRGB = new List<float>(); for (int i = 0; i < 3; i++) { 
    ListRGB.Add(ListRandom[Random.Range(0, ListRandom.Count)]); ListRandom.Remove(ListRGB[i]); } return new Color(ListRGB[0], ListRGB[1], ListRGB[2]); 

方法3↓ 改了一版, 用的是Insert(洗牌算法). 提高了效率. (但效率最高的还是手写switch)

 float[] rgbTemp = new float[3] { 
    1f, 1f, 150 / 255f }; List<float> randomColor = new List<float>(); Color GetRandomColor() { 
    rgbTemp[0] = Random.Range(150 / 255f, 1f); randomColor.Clear(); //将3个颜色随机分配给R,G,B for (int i = 0; i < 3; i++) { 
    int randomIndex = Random.Range(0, randomColor.Count + 1); randomColor.Insert(randomIndex, rgbTemp[i]); } return new Color(randomColor[0], randomColor[1], randomColor[2]); } 
小讯
上一篇 2025-02-28 23:46
下一篇 2025-02-23 17:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/73020.html