簡體   English   中英

數組隨機顏色不生成

[英]Array random color not generating

我在聲明隨機顏色數組時遇到一個問題。 它在游戲開始時在粒子系統中顯示隨機顏色,但是每次游戲開始時它都顯示白色。 我不知道為什么會這樣,我沒有在數組中設置白色。

public class A : MonoBehaviour 
{       
   Color[] colors = {
   new Color (170, 7, 107),
   new Color (58, 96, 115),
   new Color(81, 99, 149),
   new Color(71, 118, 231)
};

void start()
{
   GetComponent<ParticleSystem>().startColor =  colors[Random.Range(0, colors.Length)];
}

在Unity中,顏色的ARGB分量在0.0到1.0之間。 因此,任何大於1的東西都將被視為1,因此所有顏色自然都是白色。

要轉換顏色,請將每個分量除以255。您可以自己執行此操作,也可以將其留給代碼本身。 另外,不要忘記將其轉換為float。 感謝@Masih Akbari提醒我這一點。

因此,應為:

Color[] colors = {
    new Color (170f/255, 7f/255, 107f/255),
    new Color (58f/255, 96f/255, 115f/255),
    new Color(81f/255, 99f/255, 149f/255),
    new Color(71f/255, 118f/255, 231f/255)
}

原因是顏色在Unity中已標准化。 您必須將設置的每個浮點數除以255,以獲得實際值,例如

Color[] colors = {

    new Color (170/255, 7/255, 107/255),
    new Color (58/255, 96/255, 115/255),
    new Color(81/255, 99/255, 149/255),
    new Color(71/255, 118/255, 231/255)
};

您的顏色值必須在0到1之間。1以后的所有內容都被視為白色。

別忘了將您的數字轉換為浮點數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM