Продвинутый скрипт ТАЧА для меню(делюсь). Критика приветств.

Лучший способ помочь другим, поделиться своими находками.

Продвинутый скрипт ТАЧА для меню(делюсь). Критика приветств.

Сообщение Nolex 12 фев 2013, 20:30

Меню должно быть построено на плашках с колайдерами.
Синтаксис:
Используется csharp
//объявляем глобально.
private Collider last_collider;
private Vector2 began_tap_pos

    void Update()
    {
                if (Input.touchCount > 0)
                {
                        Touch touch = Input.GetTouch(0);
                   
                        if (touch.phase == TouchPhase.Moved)
                            {
                                 // если обнаружено Moved и при этом палец уехал больше чем на 25px в какую-нить сторону, то сбрасываем коллайдер
                                if (last_collider != null && began_tap_pos != Vector2.zero && Vector2.Distance(began_tap_pos, touch.position) > 25)
                                {
                                    last_collider = null;
                                    began_tap_pos = Vector2.zero;
                                }
                                return;
                            }
                        if (Physics.Raycast(gameObject.camera.ScreenPointToRay(touch.position), out hit, 40, raycastLayers))
                        {
                               
                            if (touch.phase == TouchPhase.Began) // запоминаем в начальной точке, ёё коллайдер и позицию.
                            {
                                last_collider = hit.collider;
                                began_tap_pos = touch.position;
                            }
                            else if (touch.phase == TouchPhase.Ended && last_collider == hit.collider) // если отжали палец, и коллайдеры совпадают — значит будет клик.
                            {
                                last_collider = null;
                                click(hit.collider.gameObject); // посылаем объект в метод "click", а там уже в зависимости от name делаем разные действия.
                            }
                                 
                        }
                       
  }
 


p.s. в коде в комментах расписал максимально всё.
p.s.2 Пляски с Moved и Began/End тут потому, что в некоторых сценах, есть скроллы, кручение камеры. Раньше бывало что при кручении камеры срабатывал клик по кнопке. После этих плясков стало норм.)
p.s.3 лично мне не нрав., что надо поднимать палец — чтобы тач срабатывал. Но в принципе это норм, так делают. :)

Короче может кому пригодиться.

Если есть идеи по оптимизации — с радостью послушаю :) Критика приветствуется.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ

Re: Продвинутый скрипт ТАЧА для меню(делюсь). Критика приветств.

Сообщение Nolex 12 фев 2013, 20:37

Это можно кинуть в Android/iOS ) Промахнулся разделом.
Разработка игр в студии Brinemedia .
Аватара пользователя
Nolex
UNIверсал
 
Сообщения: 483
Зарегистрирован: 17 окт 2010, 12:26
Откуда: Украина
Skype: exlumen
  • Сайт
  • ICQ


Вернуться в Исходники (Копилка)

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

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