Unidad de plano 2D, haga clic en una determinada posición con el mouse y el personaje se mueve en esta dirección

introducir

Unidad de plano 2D, haga clic en una determinada posición con el mouse y el personaje se mueve en esta dirección


método

using UnityEngine;

public class MoveToClickPoint : MonoBehaviour
{
    
    
    public float speed = 5f; // 角色速度

    void Update()
    {
    
    
        if (Input.GetMouseButtonDown(0)) {
    
    
            // 鼠标左键点击
            Vector3 clickPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); // 获取鼠标点击位置
            clickPosition.z = 0; // 将z轴设为0(2D平面)
            transform.LookAt(clickPosition); // 角色朝向点击位置
            transform.Translate(Vector3.forward * speed * Time.deltaTime); // 角色向前移动
        }
    }
}


¿Por qué las coordenadas de la pantalla deben convertirse en coordenadas de la cámara?

Si no convertimos la posición del clic del mouse a la posición en el sistema de coordenadas del mundo, sino que usamos directamente la posición en el sistema de coordenadas de la pantalla como la posición de destino del movimiento del personaje, entonces pueden ocurrir las siguientes dos situaciones:

  1. El personaje se desviará de la posición objetivo.
    Dado que la posición en el sistema de coordenadas de la pantalla y la posición en el sistema de coordenadas mundial tienen diferentes escalas y sistemas de coordenadas, si usamos directamente la posición en el sistema de coordenadas de la pantalla como la posición objetivo, el personaje puede desviarse de la posición de destino al moverse.

  2. Los personajes pueden moverse a posiciones inesperadas
    Si usamos una posición en las coordenadas de la pantalla como la posición de destino, entonces el personaje puede moverse a una posición inesperada. Esto se debe a que la posición en el sistema de coordenadas de la pantalla es relativa a la esquina inferior izquierda de la pantalla, no relativa a una determinada posición en la escena del juego. Por lo tanto, si usamos directamente la posición en el sistema de coordenadas de la pantalla como la posición de destino, el personaje puede moverse cerca de la esquina inferior izquierda de la pantalla en lugar de donde esperamos.

Por lo tanto, necesitamos convertir la posición en el sistema de coordenadas de la pantalla a la posición en el sistema de coordenadas mundial para garantizar que el personaje pueda moverse correctamente a la posición que esperamos.


おすすめ

転載: blog.csdn.net/qq_20179331/article/details/130681726