непонятка с GUI.Window

Общие вопросы о Unity3D

непонятка с GUI.Window

Сообщение vva 22 дек 2011, 14:29

при рисовании окна иногда движение скрола с помощью колёсика мыши не соответствует фокусу окна.
рисую 8 окон (0-7)
фокус 0 скрол 0
фокус 1 скрол 1
фокус 2 скрол 1
фокус 3 скрол 0
фокус 4 скрол 4
фокус 5 скрол 5
фокус 6 скрол 6
фокус 7 скрол 7

Синтаксис:
Используется csharp
public class cGUI_WindowInfo : cGUI
{
    protected int m_ID_Window = 0; //номер окна
    protected bool m_bFocus = false; //для определения фокуса
    //гуи
    public override bool Set_OnGUI()
    {
        bool pb = true;
        bool pb1 = false;
        bool pVisible = false;
        //предоставить номер окна ГУИ
        m_ID_Window = Get_ID_GUI_Window();
        string ps = "Window=" + m_ID_Window.ToString();
        bool pbShow = Is_Show();
        GUI.SetNextControlName(m_cParameter.m_Name);
        //фокус
        Event e = Event.current;
        bool pFoc = m_cParameter.m_Rect.Contains(e.mousePosition);
        if (pFoc && Is_Show())
        {
            m_bFocus = true;
        }
        else
        {
            m_bFocus = false;
        }
        //рисуем
        if (pbShow)
        {
            m_cParameter.m_Rect = GUI.Window(m_ID_Window, m_cParameter.m_Rect, _Window, ps);

            //_Info();
        }
        if (m_bFocus)
        {
            Set_MessageFocus(this);
        }

        return pb1;
    } //------------------------------------------------

    //закрытые------------------------------------------------

    //
    void _Info()
    {
        bool pb = false;
        bool pb1 = false;
        bool pb2 = false;
        float pX = m_cParameter.m_Rect.left;
        float pY = m_cParameter.m_Rect.top;
        float pWidth = m_cParameter.m_Rect.width;
        float pHeight = m_cParameter.m_Rect.height;
        float pSize = m_cParameter.m_Size;
        Rect pRect = m_cParameter.m_Rect;

        GUI.Box(m_cParameter.m_Rect, "");
        //область
        GUILayout.BeginArea(pRect);
        {
            //скрол
            m_cParameter.m_Vector2 = GUILayout.BeginScrollView(m_cParameter.m_Vector2, GUILayout.Width(pWidth), GUILayout.Height(pHeight));
            {
                //GUI.Box(pRect, "");
                //GUI.Label(pRect, m_cParameter.m_Text);
                //GUILayout.Box("");
                GUILayout.Label(m_cParameter.m_Text);
            }
            GUILayout.EndScrollView();
        }
        GUILayout.EndArea();
    } //------------------------------------------------
    //обработка окна
    protected void _Window(int fID)
    {
        bool pb = false;
        bool pb1 = false;
        bool pb2 = false;
        float pX = m_cParameter.m_Rect.left;
        float pY = m_cParameter.m_Rect.top;
        float pWidth = m_cParameter.m_Rect.width;
        float pHeight = m_cParameter.m_Rect.height;
        float pSize = m_cParameter.m_Size;
        int pYD = 10;
        Rect pRect = new Rect(0, pYD, pWidth, pHeight - pYD);

        //область
        GUILayout.BeginArea(pRect);
        {
            //скрол
            m_cParameter.m_Vector2 = GUILayout.BeginScrollView(m_cParameter.m_Vector2, GUILayout.Width(pWidth), GUILayout.Height(pHeight));
            {
                GUILayout.Label(m_cParameter.m_Text);
            }
            GUILayout.EndScrollView();
        }
        GUILayout.EndArea();
        //устагавливаем активный фокус
        if (m_bFocus)
        {
            GUI.FocusWindow(fID);
        }
    } //------------------------------------------------

} //------------------------------------------------
 


но если вместо рисования окна рисую
void _Info()
то движение скрола соответствует фокусу окна.
что за беда и как с ней бороться?
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт

Re: непонятка с GUI.Window

Сообщение vva 23 дек 2011, 12:39

ну терь непонятка вдвойне! сёня всё работает правильно !
какие изменения в коде повлияли на исправление так и не понял, особо ничего не менял.
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт

Re: непонятка с GUI.Window

Сообщение vva 23 дек 2011, 15:55

непоняток всё больше и больше!
-
перегрузил комп появились те же ошибки.
-
скомпилил проект и при открытом редакторе запустил экзешник.
в экзешнике ошибок нет. закрыл экзешник.
-
запустил редактор. в редакторе ошибка фокус 2 скрол 1
-
закрыл редактор. открыл редактор. запустил редактор. ошибок нет.
-
если в редакторе ошибки и компилирую проект и запускаю экзешник при закрытом редакторе то в экзешнике появляются ошибки.

в чём может быть причина этих ошибок то они есть то нет?
vva
UNITрон
 
Сообщения: 215
Зарегистрирован: 16 мар 2011, 22:22
Откуда: планета земля
Skype: vvavvavva3
  • Сайт


Вернуться в Общие вопросы

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

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