Дело №10. Движение по клику мыши в 2D, часть перваяСоздаем plane, заходим в Window>>AI>>Navigation. Выделив plane, в окне Navigation переходим на вкладку Object, ставим галочку на Navigation Static. Navigation Are оставляем по умолчанию walkable. Во вкладке Bake жмем Bake - "запекаем".
Создаем спрайт 1, вешаем на него компонент NavMeshAgent. Создаем скрипт Sledui, вешаем на спрайт 1:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class Sledui : MonoBehaviour
{
[SerializeField]
Transform _destination;
NavMeshAgent _navMeshAgent;
// Start is called before the first frame update
void Start()
{
_navMeshAgent = GetComponent<NavMeshAgent>();
_navMeshAgent.updateUpAxis = false;
_navMeshAgent.updateRotation = false;
}
// Update is called once per frame
void Update()
{
if (_destination != null)
{
Vector3 targetVector = _destination.transform.position;
_navMeshAgent.SetDestination(targetVector);
}
}
}
Создаем спрайт 2. Спрайт 2 закидываем в Destination скрипта, который на спрайте 1.
На каждый спрайт вешаем Box Collider. Коллайдеры у нас будут трехмерными, потому что NavMesh в Юнити работает только в 3D.
В настройках камеры выбираем ортогональную проекцию,
по этому уроку вешаем на нее компонент 2DPixelPerfect для корректного отображения спрайтов в любых разрешениях экрана. Поворачиваем камеру к полу и поднимаем:

Спрайты соответственно тоже поворачиваем к камере, как бы кладем на plane.
Создаем скрипт Dvig, вешаем на спрайт 2:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Dvig : MonoBehaviour
{
public static int zAxisPos = 1;
public float xAxisBoundary = 7.5f;
public float speed = 10f;
void OnGUI()
{
if (Input.GetMouseButtonDown(0))
{
Vector3 mouse = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z);
mouse = Camera.main.ScreenToWorldPoint(mouse);
this.transform.position = new Vector3(mouse.x, 1, mouse.z);
}
}
}
Когда запустим, спрайт 1 будет с определенной скоростью следовать к спрайту 2, и спрайт 2 будет мгновенно перемещаться в место, куда кликнем.