0

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

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

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声明不起作用吗?

4

1 回答 1

1

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

于 2013-05-30T10:50:09.590 回答