Движение объекта Unity

98
06 октября 2021, 20:10

помогите разобраться. Мне нужно, чтобы объект двигался в то место куда было осуществлено нажатие на экран, вместо этого объект летит куда ему вздумается. Что я делаю не так?

public class MoveHeroInMap : MonoBehaviour
{
    public float speed = 1f;
    Rigidbody2D rb;
    public void Awake()
    {
        rb = GetComponent<Rigidbody2D>();
    }  
    void FixedUpdate()
    {
        Vector2 curPos = rb.position;
        float hInput = Input.GetTouch(0).position.x;
        float vInput = Input.GetTouch(0).position.y;
        Vector2 inputVector = new Vector2 (hInput, vInput);
        inputVector = Vector2.ClampMagnitude(inputVector, 1);
        Vector2 movement = inputVector * speed;
        Vector2 newPos = curPos + movement * Time.fixedDeltaTime;
        rb.MovePosition(newPos);
    }
}
Answer 1

Input.GetTouch(0) возвращает позицию относительно экрана. Вам нужно конвертировать её используя метод Camera.ScreenToWorldPoint

READ ALSO
1C Comconnector - Номер документа

1C Comconnector - Номер документа

Подключаюсь из C# через comconnector к 1С базе и создаю новый ПриходныйКассовыйОрдер и вроде бы все отлично, но вот номер документа присваеваемый...

96
Последовательный спаун блоков пути и рандомный спаун видов препятствий внутри них

Последовательный спаун блоков пути и рандомный спаун видов препятствий внутри них

Как это реализовать? Приложил скрипт, который сейчас рандомно генерирует блоки БЕЗ препятствий

154
Как сделать progress bar в EditorWindow с Threading в Unity?

Как сделать progress bar в EditorWindow с Threading в Unity?

Мне надо сделать progress bar в EditorWindowДля этого я выполняю функцию расчётов в потоках: Thread thread = new Thread(_worker

198
Расшифровка ID в Access

Расшифровка ID в Access

имеется БД в которой находятся таблицы "Сотрудники" и "Отделы", в таблице "Сотрудники" в поле "Отдел" имеется ID отдела тип данных(Числовой), а в таблице...

258