Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Unity 2D. Алгоритм следования за игроком

Shelver_3739 Знаток (339), на голосовании 8 месяцев назад
Я занимаюсь разработкой своего проекта с TopDown перспективой, но я не знаю как сделать алгоритм следования члена команды по пути игрока. Я пытался сделать подобной алгоритм, но персонаж просто следует, не по пути игрока, а просто следует и толкает игрока.
 using System.Collections; 
using System.Collections.Generic;
using UnityEngine;

public class charaMoving : MonoBehaviour
{
public Transform player;
public float moveSpeed = 5f;

private void Update()
{
Vector3 direction = player.position - transform.position;
direction.Normalize();
transform.position += direction * moveSpeed * Time.deltaTime;
}
}
Голосование за лучший ответ
Xttx Мыслитель (9004) 9 месяцев назад
Просто поставь проверку на расстояние: если расстояние больше порога - тогда следовать, иначе - ничего не делать. Тогда не будет толкать.

if (Vector3.Distance(player.position, transform.position) > 5f) {
//тут твой код
}

А если ты хочешь что б шёл не _в направлении_ игрока, а именно повторл тректорию, это будет сложнее. В игроке, создай очередь векторов и каждый кадр (хотя лучше каждые несколько кадров) добаляй в неё position. Если размер очереди больше, скажем, 300 (подбирается на вкус) - удаляй самое раннее значение. А член команды должен будет подходить к самому раннему значению из этой очереди своим ходом, удалять его, и двигатсья к следующему. Как то так...
Shelver_3739Знаток (339) 9 месяцев назад
Спасибо
Похожие вопросы