Как сделать чтобы персонаж поворачивался и шёл за джойстиком? [Unity]
Я знаю что подобный вопрос уже задавали, но там так и не объяснили как это сделать.

Мне нужно чтобы персонаж поворачивался и шёл за джойстиком. Данный код работает немного не правильно.
using System.Collections.Generic;
using UnityEngine;
public class FirstPersonMovement : MonoBehaviour
{
public Joystick joystick;
public float speed = 5;
Vector2 velocity;
void FixedUpdate()
{
velocity.y = joystick.Vertical * speed * Time.deltaTime;
velocity.x = joystick.Horizontal * speed * Time.deltaTime;
transform.Translate(velocity.x, 0, velocity.y);
}
}
Спасибо за любую помощь и ответ ❤
Ответы (3 шт):
Автор решения: Taoreta
→ Ссылка
Я решил проблему с поворотом игрока за джойстиком. Вот код:
Это надо добавить в FixedUpdate или Update
transform.LookAt(Vector3.forward * joystick.Vertical * 200 + Vector3.right * joystick.Horizontal * 200);
Автор решения: Taoreta
→ Ссылка
Решил проблему передвижения игрока за джойстиком. Вот код:
public Joystick joystick;
public float speed = 5;
Vector3 velocity;
private CharacterController ch_controller;
private void Start()
{
ch_controller = GetComponent<CharacterController>();
}
void FixedUpdate()
{
velocity = Vector3.zero;
velocity.x = -joystick.Vertical * speed;
velocity.z = joystick.Horizontal * speed;
ch_controller.Move(velocity * Time.deltaTime);
}
Автор решения: Taoreta
→ Ссылка
В общем чтобы персонаж шёл и поворачивался за джойстиком. Нужно поставить компонент "Character Controller" на персонажа, и написать этот код:
public Joystick joystick;
public float speed = 5;
Vector3 velocity;
private CharacterController ch_controller;
private void Start()
{
ch_controller = GetComponent<CharacterController>();
}
void FixedUpdate()
{
transform.LookAt(Vector3.forward * joystick.Vertical * 200 + Vector3.right * joystick.Horizontal * 200);
velocity = Vector3.zero;
velocity.x = -joystick.Vertical * speed;
velocity.z = joystick.Horizontal * speed;
ch_controller.Move(velocity * Time.deltaTime);
}
