Показать сообщение отдельно
Старый 26.03.2011, 19:53   #12
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Перетаскивание элементов GUI

Похоже на багу Unity. Тогда такой костыль:

using UnityEngine;

public class 
DragTest MonoBehaviour
{
    public 
Rect pos = new Rect(20,20,200,200);
 
    private 
bool _drag false;

    private 
Vector2 _lastMousePos;

    public 
void OnGUI()
    {
        
GUI.Box(pos"Тащи меня");
 
        var 
evtType Event.current.type;
        var 
mousePos Event.current.mousePosition;
 
        if (
evtType == EventType.MouseDown && pos.Contains(mousePos))
        {
            
_drag true;
            
_lastMousePos mousePos;
        }
        else if (
evtType == EventType.MouseUp && pos.Contains(mousePos))
        {
            
_drag false;
        }
        else if (
evtType == EventType.MouseDrag && _drag)
        {
            var 
delta mousePos _lastMousePos;
            
pos.+= delta.x;
            
pos.+= delta.y;
            
_lastMousePos mousePos;
        }
    }
 
 


Кстати, какая версия Unity?
(Offline)
 
Ответить с цитированием