Не рисует текстуру :( [Решено]

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Не рисует текстуру :( [Решено]

Сообщение The Jet 15 май 2012, 09:15

Вопрос наверное совсем простейший, но у меня скрипт не желает рисовать текстуру.. Хелп..

Вешаю этот скрипт на ячейку в панели (по сути ячейка это просто трансформ, созданный ngui), далее посылаю в него из другого скрипта в функцию Portrait_Drawer данные о текстуре (какую надо рисовать)..
Данные приходят, в консоль все выводится, что получена текстура, что вот она отрисована там-сям..
Для дебага вывел в консоль все координаты и вторую отрисовку этой же текстуры в любом другом месте чтобы проверять может я ее не вижу или напутал с локальными-абсолютными координатами..
Но она не появляется на экране.
Пробовал альтернативный вариант через OnGUI и GUI.DrawTexture а там все так же печально :(

Обязательно ли необходимо назначать в таком случае материал для текстуры вручную? В мануале написано что при отсутствии указания материала юнити сам какой то ставит по дефолту. Может быть дело в этом?

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class GUI_Portrait_Drawer : MonoBehaviour {

public Transform panel_cell;
public Texture curr_tex;
       
public void Portrait_Drawer (Texture portrait) // main function -- функция рисования текстур, полученных из других скриптов
               
        {
            curr_tex = portrait;  // set texture var -- присваиваем полученную текстуру к переменной для дальнейших обработок
                panel_cell = gameObject.transform;      // link with current cell's transform -- присваиваем трансформ ячейки куда рисовать к местной переменной для дальнейших обработок
               
               
                // read transform x,y,z and scale -- читаем размеры ячейки чтобы нарисовать текстуру с таким же размером
               
                Vector3 pos = panel_cell.localPosition;
                pos.x = Mathf.RoundToInt(pos.x);
                pos.y = Mathf.RoundToInt(pos.y);
                pos.z = Mathf.RoundToInt(pos.z);
               
                Vector2 scale = panel_cell.localScale;  
               
                print("--- Panel IS -- " + panel_cell);        
                print("--- PORTRAIT TO DRAW IS a -- " + curr_tex);     
               
//              NGUIEditorTools.DrawTiledTexture (Rect(pos.x,pos.y,scale.x,scale.y), curr_tex);  // reserved -- резерв для использования с NGUI
               
                Graphics.DrawTexture (new Rect(pos.x,pos.y,scale.x,scale.y), curr_tex); // draw texture -- рисуем полученное в границах ячейки (трансформа)
               
                Graphics.DrawTexture (new Rect(1,1, 160,160), curr_tex); // test -- рисуем для теста в фиксированном месте чтобы проверить рисуется ли вообще что-то
               
            print("--- DRAWING P0 COMPLETE in a -- x = " + pos.x + " y = " + pos.y + " z = " + pos.z + " Width " + scale.x + " Height " + scale.y);    
               
        }      
}
 



upd. решено через добавление нового объекта на панели
The Jet
UNец
 
Сообщения: 21
Зарегистрирован: 09 фев 2012, 10:56

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 26