如何制作一个可以更改对象颜色的滑块?

时间:2019-08-16 22:18:54

标签: c# unity3d colors slider

我正在制作2D Unity角色自定义屏幕。我希望玩家能够更改角色的发色,并且我希望颜色选项几乎是无限的。我相信执行此操作的最干净方法是创建一个可容纳色轮的滑块。我该怎么办?

我曾经尝试过谷歌搜索和观看视频,但是我仍然迷路。

我的预期结果是头发的颜色根据滑块的位置而改变。

1 个答案:

答案 0 :(得分:0)

好的,因此计算机内部的颜色通常是RGB值。 (红绿蓝) 为了改变游戏内部的颜色,我通常会看到3个滑块,每个值一个。 每个滑块将是0-255之间的值。您可以将该值设置为头发中红色,绿色或蓝色的数量。

要更改代码中的颜色,它将看起来像这样。我很肯定有更好的方法可以做到这一点,但是我认为这在观看了一段简短的Brakeys视频后应该可以解决。

https://www.youtube.com/watch?v=HQ8Tttcksu4

public float red;
public float green;
public float blue;
public float maxColor = 255;
public Color hairColor;

然后,当滑块更改时,使用功能更新头发的颜色。

public void UpdateRed(float newRed)
{
    red = newRed;
    UpdateHairColor();
}
public void UpdateGreen(float newGreen)
{
    green = newGreen;
    UpdateHairColor();
}
public void UpdateBlue(float newBlue)
{
    blue = newBlue;
    UpdateHairColor();
}


public void UpdateHairColor()
{
     hairColor = new Color(red/maxColor, green/maxColor, blue/maxColor);
}