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

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

Всем привет! Мне нужно чтобы при нажатие на кнопку объект летел по диагонали пока не попадет на врага (ну то есть бесконечно) или не упрётся в платформу . Покажите как сделать такое движение кодом
  • Вопрос задан
  • 208 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skysmart
    Unity для детей
    3 месяца
    Далее
  • Skysmart
    Профессия «Разработчик игр» для школьников
    2 года
    Далее
  • Rebotica
    Разработка игр для детей и подростков
    2 года
    Далее
Пригласить эксперта
Ответы на вопрос 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;
        }
    }
}
Ответ написан
Ваш ответ на вопрос

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

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