Zoom для ортографической камеры (КОД)

Программирование для iPhone & Android

Zoom для ортографической камеры (КОД)

Сообщение Neodrop 07 янв 2010, 04:25

Вижу, за 15 месяцев существования форума, никто не выложил ни коротенького кода для яФонов, хотя разработчики у нас уже есть.
Как обычно, придется брать инициативу на себя.
Итак, представляю класс Zoomer.

Он написан для того, чтобы дать возможность жестами двух пальцев, зумить ортографическую камеру. НА вроде Google Maps в мобилке. Без особого труда, класс можно перекрутить на обычную камеру.

(c#) Zoomer.cs
Синтаксис:
Используется csharp
//Creating by Neodrop
//neodrop@unity3d.ru
using UnityEngine;

[RequireComponent(typeof(Camera))]
public class Zoomer : MonoBehaviour
{

    public float stepPerSecond = 1f, orthoMin = 3f, orthoMax = 6f;
    float lastDistance = 0f;

    void FixedUpdate()
    {
        if (iPhoneInput.touchCount != 2)
        {
            lastDistance = 0;
            return;
        }

        if (iPhoneInput.touches[0].phase != iPhoneTouchPhase.Moved && iPhoneInput.touches[1].phase != iPhoneTouchPhase.Moved)
        {
            lastDistance = 0;
            return;
        }

        iPhoneTouch[] touch = iPhoneInput.touches;
        float distance = Vector2.Distance(touch[0].position, touch[1].position);

        if (distance == lastDistance) return;

        float touchDistance = (touch[1].position - touch[0].position).magnitude;
        float lastTouchDistance = ((touch[1].position - touch[1].deltaPosition) - (touch[0].position - touch[0].deltaPosition)).magnitude;
        float deltaPinch = touchDistance - lastTouchDistance;

        camera.orthographicSize += deltaPinch * stepPerSecond * Time.deltaTime;
        if (camera.orthographicSize < orthoMin) camera.orthographicSize = orthoMin;
        else if (camera.orthographicSize > orthoMax) camera.orthographicSize = orthoMax;

        lastDistance = distance;
    }
}
 
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Вернуться в iPhone & Android

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

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