2013-05-29 2 views
0

Я хочу применить текстуру или цвет к игровому объекту. Я написал этот код до сих пор, но цветная часть не работает. Текстура применяется, поэтому по крайней мере что-то правильно. В зависимости от типа объекта я применяю текстуру или цвет, а не одновременно.Цвет Unity3d не применяется к gameobject

Если я играю сцену, я вижу новый материал, получающий назначение (я вижу его на панели инспектора), но с белым цветом.

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

Вы можете иметь лучшую удачу найдётся ответ на вопросы Unity их посвященный Q & A сайт: http://answers.unity3d.com/index.html – Adrian

+0

Я нашел ответ: я должен разделить каждое число на 255 для работы. если кто-то опубликует его в качестве ответа, я его приму. –

+3

Вы должны опубликовать его самостоятельно и принять. Тогда мы можем его проголосовать :) – Kay

ответ

1

Ответ: разделить каждое число на 255. Я не знаю explanaition, но это выглядит, что new Color() ожидает параметры быть между 0 и 1.

Смежные вопросы