Переместить объект на мышь X - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть код для перемещения объекта на мышь X, но этот код не учитывает расстояние (объект следует прямо в мышь) Как я могу получить их вид управления?Где игрок перемещает позиции между смещениями вместо того, чтобы переместиться в положение пальца?Можете ли вы помочь мне?

private void HorizontalMovement() 
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
    RaycastHit hit;
    if (Physics.Raycast(ray, out hit, 100)) 
    {
        transform.position = Vector3.Lerp(transform.position, new Vector3(hit.point.x, transform.position.y, transform.position.z), speed * Time.deltaTime); 
    } 
}

1 Ответ

0 голосов
/ 08 февраля 2019

Если я вас правильно понимаю, вы хотите остановить движение на определенном расстоянии до достижения точного положения пальца.

// adjust that in the inspector
public float distanceOffset = 0.1f;

private void HorizontalMovement() 
{
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 
    RaycastHit hit;
    if (Physics.Raycast(ray, out hit, 100)) 
    {
        // Get the direction from hit object to player
        var direction = (new Vector3(transform.position.x - hit.point.x, 0, 0)).normalized;

        // Add the offset in the direction to the hit position
        var targetPosition = new Vector3(hit.point.x, transform.position.y, transform.position.z) + direction * distanceOffset;

        transform.position = Vector3.Lerp(transform.position, targetPosition, speed * Time.deltaTime); 
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...