Управление персонажем джойстиком и тачами

Общие вопросы о Unity3D

Управление персонажем джойстиком и тачами

Сообщение utyasheva.irina 07 окт 2015, 12:57

Я делаю вьювер модели, мой персонаж перемещается по plane с помощью двух джойстиков (один джойстик - передвижение влево, право, назад, вперед, а второй джойстик - для поворота камеры) (CNControls - ассет юнити бесплатный) и я хочу еще сделать перемещение с помощью одного касания (перемещение влево, право, вперед, назад) и двух касаний - эффект зумирования (фактически перемещение вперед).
управление персонажем с помощью джойстиков сделала, а вот перемещение персонажа с помощью жестов не могу понять как сделать (везде примеры с зумированием и перемещением камеры).
utyasheva.irina
UNIт
 
Сообщения: 79
Зарегистрирован: 31 авг 2015, 10:22

Re: Управление персонажем джойстиком и тачами

Сообщение TexeL 07 окт 2015, 16:50

я хочу еще сделать перемещение с помощью одного касания (перемещение влево, право, вперед, назад)


по-подробней !
ИзображениеИзображение
Аватара пользователя
TexeL
UNITрон
 
Сообщения: 244
Зарегистрирован: 15 ноя 2009, 20:57
  • Сайт

Re: Управление персонажем джойстиком и тачами

Сообщение utyasheva.irina 07 окт 2015, 17:24

У меня получилось сделать

if (Input.touchCount == 1)
{
DebugHUD.Log("Android");

Touch currentTouch = Input.GetTouch(0);

if (currentTouch.phase == TouchPhase.Began)
this.dragOrigin = this.getWorldPoint(currentTouch.position);

if (currentTouch.phase == TouchPhase.Moved)
{
Vector3 worldDelta = getWorldPoint(currentTouch.position) - this.dragOrigin;

//Vector3 move = new Vector3 (worldDelta.x * dragSpeed, 0, worldDelta.y * dragSpeed);

Vector3 move = new Vector3 (worldDelta.x * dragSpeed, worldDelta.y * dragSpeed, 0);

//DebugHUD.Log(getWorldPoint(move));

//Camera.main.transform.Translate (move, Space.World);
Camera.main.transform.Translate(move.x, move.y, 0);
}
}
if (Input.touchCount == 2 && Input.GetTouch(0).phase == TouchPhase.Moved && Input.GetTouch(1).phase == TouchPhase.Moved)
{
Vector2 cameraViewsize = new Vector2 (Camera.main.pixelWidth, Camera.main.pixelHeight);

Touch touchOne = Input.GetTouch(0);
Touch touchTwo = Input.GetTouch(1);

Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;
Vector2 touchTwoPrevPos = touchTwo.position - touchTwo.deltaPosition;

float prevTouchDeltaMag = (touchOnePrevPos - touchTwoPrevPos).magnitude;
float touchDeltaMag = (touchOne.position - touchTwo.position).magnitude;

float deltaMagDiff = touchDeltaMag - prevTouchDeltaMag;

//Camera.main.orthographicSize += deltaMagDiff * orthoZoomSpeed;
///Camera.main.orthographicSize = Mathf.Clamp (_camera.orthographicSize, minZoom, maxZoom) - 0.001f;

Vector3 movement = Camera.main.transform.TransformDirection (Camera.main.transform.forward);

Camera.main.transform.Translate(movement * deltaMagDiff * 5);
}
utyasheva.irina
UNIт
 
Сообщения: 79
Зарегистрирован: 31 авг 2015, 10:22

Re: Управление персонажем джойстиком и тачами

Сообщение DGHaZe 08 окт 2015, 11:55

Лови видео может поможет.
Изображение
Аватара пользователя
DGHaZe
UNец
 
Сообщения: 36
Зарегистрирован: 18 сен 2015, 20:12
  • Сайт


Вернуться в Общие вопросы

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

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