unity3d 如何为统一的gameObject分配随机颜色?

yb3bgrhw  于 2023-11-22  发布在  其他
关注(0)|答案(3)|浏览(228)

我有3种颜色(红色,绿色,黄色),我想从这3种颜色中随机分配颜色到我的球每次当我的游戏开始或重新启动后gameOver。
谢谢你,谢谢

p1tboqfb

p1tboqfb1#

定义列表中的颜色并在检查器中选择它们。

public List<Color> Colors = new List<Color>();

private void ChangeColor()
{
    GetComponent<MeshRenderer>().material.color = Colors[Random.Range(0, Colors.Count)];
}

字符串

t1qtbnec

t1qtbnec2#

创建一个包含颜色的列表或数组,然后在Start方法(如果手动重新启动,则使用自定义方法)中相应地对该数组使用random.range()。如果每个颜色都应该保证唯一,请使用单例模式来保留该颜色列表的公共示例,并在每次使用时删除已使用的颜色。

puruo6ea

puruo6ea3#

顺便说一下,如果你想在Unity中创建随机颜色,并且不希望这些颜色暗淡或接近灰度,你可以使用这样的代码:

Color resultColor = Color.HSVToRGB(UnityEngine.Random.Range(0f, 1f), 1f, 1f);
MR.material.color = resultColor;

字符串
这很容易,因为通过在HSV中更改色调可以更容易地捕获鲜艳的颜色。

相关问题