Изменение размеров экрана двойным свайпом на android
Я хочу, чтобы размер изображенных на экране объектов, менялся при двойном свайпе. Под двойным свайпом я имею ввиду движение одним пальцем, например, влево, а другим вправо, тогда изображение должно уменьшаться.
Само уменьшение и увеличение я, конечно, реализую, а вот вызвать его надо при этом двойном свайпе.
У меня есть такая идея:
- В Update проверяем тачи
- Если имеем 2 тача, то просчитываем направление движения.
- Если движение происходит в противоположные стороны,
- Если друг на друга - уменьшаем
- Друг от друга - увеличиваем.
Но что, если будет 3 тача, и правильно ли вообще так делать? Может есть какой-то простой вариант? В Интернете о запросам изменение размеров свайпом, scale swipe и тому подобное я не нашел вариантов...
UPD1: Нашел вот такую картинку того, что я хочу: 
Возможно, можно что-то нагуглить по запросу pinch и unpinch. Если что-то найду, опубликую ответ и отформатирую вопрос.
Ответы (1 шт):
Как-то так
[DisallowMultipleComponent]
public class Scaler : MonoBehaviour {
[SerializeField] private Transform _scaleObject;
private float _baseScale;
private float _baseDistance;
private void Update () {
if (Input.touches.Length == 2) {
switch (Input.touches[1].phase) {
case TouchPhase.Began:
_baseScale = _scaleObject.localScale.x;
_baseDistance = Vector2.Distance(Input.touches[0].position, Input.touches[1].position);
break;
case TouchPhase.Moved:
float CurrentDistance = Vector2.Distance(Input.touches[0].position, Input.touches[1].position);
float Rate = CurrentDistance/_baseDistance; // или на оборот
float Scale = _baseScale*Rate;
_scaleObject.localScale = new Vector3(Scale, Scale, Scale);
break;
}
}
}
}