@Gera01
Unity, С# и больше ничего.

Можете ли вы дать идею для реализации AI?

Есть вот такая игра
Есть стандартный код, где реализованы методы для поворотов и для того чтобы ехать вперед. По идее Ai можно было бы реализовать через NawMesh, но 1. тут 2d, и движение должно быть такое, как в примере на верху. Вопрос в том, как понять что машине полиции нужно поворачивать, в какую сторону, а когда переставать поворачивать?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PoliceCarMove : MonoBehaviour, IMove
{ 
    private Rigidbody2D rb;
    
    [SerializeField]
    private float rotatePower;
    
    [SerializeField]
    private float speed;

    private void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }
    
    
    public void MoveForward()
    {
        transform.position += transform.up * speed;
    }

    public void Right()
    {
        transform.Rotate(Vector3.forward * rotatePower);    
    }

    public void Left()
    {
        transform.Rotate(Vector3.back * rotatePower);    
    }
}
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
EveningEugene
@EveningEugene
Unity-разраб
Есть функция Vector2.SignedAngle, которая возвращает угол между двумя векторами. Причём эта версия Возвращает значения от -180 до 180. В зависимости от того значение меньше или больше нуля вам и нужно поворачивать направо или на лево, если вообще нужно поворачивать. И вот это "нужно ли поворачивать" - это вовсе не "угол равен 0", а какие-то небольшие отклонения от нуля.
Уделяйте больше времени чтению документации, задача очень простая. Вам уже сказали, что тут простая векторная математика, а значит идёте и исследуете документацию по Vector2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Unity
Ну во первых это не AI.
НАвмеш тут не нужен - тут нет поиска пути как такового. Полицейская машина всегда пытается ехать в сторону машины игрока, просто у нее есть физика заноса. Вот как опишите физику заноса - так и станет вам же понятнее.
Можно еще для профилактики погуглить как сделаны боты в гонках - там работает "резинка".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы