Задать вопрос

Как заставить объект двигаться по диагонали бесконечно?

Всем привет! Мне нужно чтобы при нажатие на кнопку объект летел по диагонали пока не попадет на врага (ну то есть бесконечно) или не упрётся в платформу . Покажите как сделать такое движение кодом
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Hixac
Сделал скорее для себя, ибо на хабре вряд ли кто-то станет писать код для кого-то.
Вы не упомянали в каком измерении это писать, т.ч. запилил на 2д. Код рабочий, я проверял. Spherecast (Это для 3д), CircleCast (Для 2д) для обеих случаев подойдёт.

public class Logic : MonoBehaviour
{
    public float Speed;
    [Header("SphereCast options")]
    public float Radius;
    private void Start()
    {
        _originalSpeed = Speed;
    }
    private void OnMouseDown()
    {
        Detector();
        Movement();
    }
    private void OnMouseUp()
    {
        Speed = 0;
    }
    private void Movement()
    {
        transform.Translate(Speed * Time.deltaTime, Speed * Time.deltaTime, 0);
    }
    float _originalSpeed;
    private void Detector()
    {
        if (Physics2D.CircleCast(transform.position, Radius, transform.right))
        {
            Speed = 0;
        }
        else
        {
            Speed = _originalSpeed;
        }
    }
}
Ответ написан
Ваш ответ на вопрос

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

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