我想在游戏对象上应用纹理或颜色。我到目前为止编写了这段代码,但颜色部分无效。纹理被应用,所以至少有些东西是正确的。取决于我应用纹理或颜色的对象类型,而不是同时应用两者。
如果我播放场景,我可以看到一个新材料被分配(我在检查面板中看到它),但是白色。
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
语句不起作用?
答案 0 :(得分:1)
答案是:将每个数字除以255.我不知道解释,但看起来new Color()
期望参数介于0和1之间。