Unity3d颜色未应用于游戏对象

时间:2013-05-29 19:54:48

标签: c# colors unity3d

我想在游戏对象上应用纹理或颜色。我到目前为止编写了这段代码,但颜色部分无效。纹理被应用,所以至少有些东西是正确的。取决于我应用纹理或颜色的对象类型,而不是同时应用两者。

如果我播放场景,我可以看到一个新材料被分配(我在检查面板中看到它),但是白色。

GameObject o = GameObject.Find(items[i].name + "/" + ifv.field_details.name);
if (o != null){
    if (ifv.field_details.type_id.Equals(Strings.colorType)){
        //set the color
        string[] c = ifv.value.Split(',');
        Color color = new Color(float.Parse(c[1]),float.Parse(c[2]),float.Parse(c[3]),float.Parse(c[0]));
        Material material = new Material(Shader.Find("Diffuse"));
        material.color = color;                         
        o.renderer.material = material;
    }
    if (ifv.field_details.type_id.Equals(Strings.textureType)){
        //set the texture
        string url = Strings.texturesHost + ifv.value;
        WWW www = new WWW (url);
        yield return www;
        o.renderer.material.mainTexture = www.texture;
    }
}

知道为什么颜色if语句不起作用?

1 个答案:

答案 0 :(得分:1)

答案是:将每个数字除以255.我不知道解释,但看起来new Color()期望参数介于0和1之间。