Рисование мышкой

Программирование на Юнити.

Рисование мышкой

Сообщение dreammaster 21 фев 2012, 19:39

Здравствуйте уважаемые участники форума как реализовать такой метод как в стратегии когда левой клавишей мыши рисуется прямоугольник при этом выделяются все юнеты которые попали в эту область.
Как я понимаю нужно делать через луч по нажатию левой клавишей мыши, а вот как нарисовать прямоугольник этого я не знаю, помогите, пожалуйста.
Аватара пользователя
dreammaster
UNец
 
Сообщения: 14
Зарегистрирован: 02 мар 2011, 18:16
Откуда: Томск

Re: Рисование мышкой

Сообщение Berenold 22 фев 2012, 12:26

dreammaster писал(а):Здравствуйте уважаемые участники форума как реализовать такой метод как в стратегии когда левой клавишей мыши рисуется прямоугольник при этом выделяются все юнеты которые попали в эту область.
Как я понимаю нужно делать через луч по нажатию левой клавишей мыши, а вот как нарисовать прямоугольник этого я не знаю, помогите, пожалуйста.

Не очень понял вопрос. Тебе нужна логика проверки попали ли юниты в выбеленный квадрат и ли как его отрисовать?
Невозможное возможно!
Аватара пользователя
Berenold
UNITрон
 
Сообщения: 151
Зарегистрирован: 31 июл 2010, 01:44
Откуда: Киев
  • Сайт

Re: Рисование мышкой

Сообщение dreammaster 22 фев 2012, 17:16

Да именно я не-могу нарисовать этот самый прямоугольник, которым я мог бы выделять юнитов.
Аватара пользователя
dreammaster
UNец
 
Сообщения: 14
Зарегистрирован: 02 мар 2011, 18:16
Откуда: Томск

Re: Рисование мышкой

Сообщение waruiyume 22 фев 2012, 22:50

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

public class SelectionRect : MonoBehaviour
{
    public GUIStyle style;

    private Vector2 startPos;
    private Vector2 endPos;

    private Rect rect;
    private bool drawRect;

    private readonly GUIContent cont = new GUIContent();

    void OnGUI ()
        {
        if (Input.GetMouseButtonDown(0))
        {
            startPos = Input.mousePosition;
            drawRect = true;
        }
        if (Input.GetMouseButtonUp(0))
            drawRect = false;

        if (drawRect)
        {
            endPos = Input.mousePosition;
            if(startPos==endPos)return;

            rect = new Rect(Mathf.Min(endPos.x, startPos.x),
                            Screen.height - Mathf.Max(endPos.y, startPos.y),

                            Mathf.Max(endPos.x, startPos.x) - Mathf.Min(endPos.x, startPos.x),
                            Mathf.Max(endPos.y, startPos.y) - Mathf.Min(endPos.y, startPos.y)
                            );

            GUI.Box(rect,cont,style);
        }
        }
}

 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Рисование мышкой

Сообщение dreammaster 23 фев 2012, 05:27

Спасибо большое все работает.
Аватара пользователя
dreammaster
UNец
 
Сообщения: 14
Зарегистрирован: 02 мар 2011, 18:16
Откуда: Томск


Вернуться в Скрипты

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8