Почему я не могу использовать WorldToViewportPoint для движения 2D мыши - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу отследить движение указателем мыши для объекта для 2D-пинг-понга, и мой объект сходит с ума по оси Y.Я хочу использовать WorldToViewportPoint, но это кодовое слово скорее для 3D-игр (я думаю?).У кого-нибудь из вас есть идея, почему я могу использовать WorldToViewportPoint для отслеживания моего движения?

(извините за мой ужасный английский. Я из Германии :).и извините за мои навыки кодирования я только в начале)

Спасибо за помощь !!!

using UnityEngine;

public class MausMovement : MonoBehaviour
{
    public Rigidbody2D rb;

    void FixedUpdate()
    {
        var PosY = Camera.main.WorldToViewportPoint(Input.mousePosition).y; // Get the position of the mouse Pointer

        var VectorPos = new Vector2(0, PosY); // transfrom the position in a vector

        rb.MovePosition(VectorPos); // Put in the Rigidbody
    }
}

1 Ответ

0 голосов
/ 17 апреля 2019

Мышь находится в экранных координатах, а объект в мировых координатах, поэтому вместо нее следует использовать Camera.main.ScreenToWorldPoint.

Обратите внимание, что преобразование обрабатывает значение Z входа как расстояние от камеры. Input.mousePosition даст вам 0 для значения Z, поэтому вам, возможно, придется настроить Z, чтобы весло появилось в правильной плоскости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...