Извиняюсь, может уже спрашивали. Как сделать так, чтобы персонаж смотрел в сторону, куда направлен джойстик геймпада или мобилки, думаю без разницы. Для примера могу привести игру zombiуwood для телефона.
Re: Поворот персонажа джойстиком. Как?
Добавлено: 22 дек 2015, 04:27
waruiyume
Умножить поворот камеры на вектор направления джойстика (или на оборот, не помню) У полученного вектора обнулить Y компонент Нужное вращение можно получить из предыдущего вектора через Quaternion.LookRotation
Re: Поворот персонажа джойстиком. Как?
Добавлено: 22 дек 2015, 08:26
Syberex
У меня в джойстике есть пример такого управления
Re: Поворот персонажа джойстиком. Как?
Добавлено: 22 дек 2015, 15:00
Rando_OM
Можно поподробней? У джойстика 2 оси, значит надо сделать Vector3, где z = 0? Игра изометрическая, можно сказать похожа на Diablo. Камера находиться в одном положении. Пробовал переделать пример из Survival shooter, но ничего не вышло (Смотрит в одну сторону )
При отправке сообщения происходит какой-то косяк и ни хрена не отправляется, если сообщение длиннее нескольких строк. Пробовал в разных браузерах ... У меня у одного такое???
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 06:53
Rando_OM
В вашем примере персонаж поворачивается плавно, а мне нужно чтобы резко смотрел в сторону, куда направлен джойстик. Если делать через MoveRotation, то персонаж смотрит только в 4 стороны(
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 10:36
Syberex
Тогда вместо Lerp-а просто: transform.rotation = targetRot;
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 13:14
Rando_OM
Проблема в том, что он поворачивается только в 3 стороны - вправо, влево и верхний левый угол. Джойстик работает исправно, проверял в других играх и смотрел оси в unity. Может можно сделать через рейкаст? Очень прошу, помогите с этой проблемой.
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 16:16
Cr0c
А если Vector3 look = Vector3.left * Joy.x + Vector3.up * Joy.y ? Вот и получится вектор с точным углом от осей джойстика. Единичные векторы подберете сами, я не знаю организацию сцены.
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 19:14
Rando_OM
Большое спасибо. Получилось. Осталось это дело сгладить, а то рывками крутиться и все))
Re: Поворот персонажа джойстиком. Как?
Добавлено: 23 дек 2015, 21:42
Cr0c
Rando_OM писал(а):Большое спасибо. Получилось. Осталось это дело сгладить, а то рывками крутиться и все))
Пффф... Посчитали новый вектор направления и лерпом старый к новому приводим не забываем про мертвую зону и нулевой вектор при отпущенном джое!
Re: Поворот персонажа джойстиком. Как?
Добавлено: 13 авг 2018, 10:36
HeySleare
А можно как-то поподробнее объяснить, а то я чего-то не понимаю)
Re: Поворот персонажа джойстиком. Как?
Добавлено: 13 авг 2018, 11:48
HeySleare
Вот мой код если что.
using UnityEngine; using CnControls; using System.Collections;
public class characterControl : MonoBehaviour {
Vector3 position;
void Start() {
}
void FixedUpdate () { position = new Vector3(CnInputManager.GetAxis("Horizontal"), CnInputManager.GetAxis("Vertical"), 0f);
transform.position += position*Time.deltaTime*5;
if (position.x < 0) { transform.rotation = Quaternion.Euler(0, 180, 0); // это старые развороты } if (position.x > 0) { transform.rotation = Quaternion.Euler(0, 0, 0); }
} } Что мне сделать чтобы персонаж поворачивался с направлением двойстика?