【问题标题】:Random color from array for GameObject来自 GameObject 数组的随机颜色
【发布时间】:2017-09-08 18:40:48
【问题描述】:

统一制作游戏,我正在使用此代码。我不知道出了什么问题,为什么精灵在实例化时不改变颜色。你能帮助我不要失去理智吗? :D(我也在生成随机游戏对象)

int randomIndex = UnityEngine.Random.Range(0, arrows.Length);
    GameObject prefab = arrows[randomIndex];
    GameObject clone = Instantiate(prefab, new Vector3(0.02F, 2.18F, -1), Quaternion.identity);

    //change colors
    colors[0] = new Color (250, 250, 250);
    colors[1] = new Color (144, 249, 242);
    colors[2] = new Color (20, 173, 163);
    colors[3] = new Color (21, 129, 168);
    colors[4] = new Color (5, 95, 127);
    colors[5] = new Color (58, 125, 196);
    int colorRandomIndex = UnityEngine.Random.Range(0, colors.Length);
    SpriteRenderer renderer = clone.GetComponent<SpriteRenderer>();
    renderer.color = colors[colorRandomIndex]; 
    myObjects.Add(clone);

【问题讨论】:

    标签: c# unity3d random colors


    【解决方案1】:

    你可以尝试使用

    int colorRandomIndex = UnityEngine.Random.Range(0, colors.Length);
    
    clone.GetComponent<SpriteRenderer>().material.color = colors[colorRandomIndex];
    

    好的,所以错误是您创建颜色的方式,Color 只接受 0 和 1 之间的浮点值。您需要使用 Color32

    colors[0] = new Color32 (250, 250, 250, 255);
    colors[1] = new Color32 (144, 249, 242, 255);
    colors[2] = new Color32 (20, 173, 163, 255);
    colors[3] = new Color32 (21, 129, 168, 255);
    colors[4] = new Color32 (5, 95, 127, 255);
    colors[5] = new Color32 (58, 125, 196, 255);
    

    别忘了把数组也改成Color32

    【讨论】:

    • 不,它不起作用。所以这段代码有效,但它给出了随机的颜色。我怎么能改变它,所以它会从数组中给出颜色? clone.GetComponent&lt;SpriteRenderer&gt;().material.color = new Color(UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f), UnityEngine.Random.Range(0f, 1f));
    • 此错误:严重性代码描述项目文件行抑制状态错误 CS7036 没有给出与 'Color32.Color32(byte, byte, byte, byte) 所需的形参 'a' 相对应的参数
    • @KlemenŠkrlj 糟糕的是,您还需要添加 255 的 alpha 值。我编辑了答案。
    【解决方案2】:

    也许试试renderer.material.color = colors[colorRandomIndex];?好久没用Unity了……

    【讨论】:

    • 不.. 仍然使用它的原始颜色。我是否必须更改 Inspector 中的某些内容或类似的内容?
    猜你喜欢
    • 2017-05-18
    • 2013-02-03
    • 2015-04-09
    • 2021-03-16
    • 2018-09-20
    • 2018-03-18
    • 2015-01-11
    • 1970-01-01
    相关资源
    最近更新 更多