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

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

Всем привет! Мне нужно чтобы при нажатие на кнопку объект летел по диагонали пока не попадет на врага (ну то есть бесконечно) или не упрётся в платформу . Покажите как сделать такое движение кодом
  • Вопрос задан
  • 212 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Stepik
    PRO C#. Профессия "Разработчик игр на Unity"
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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;
        }
    }
}
Ответ написан
Ваш ответ на вопрос

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

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