Amffore
@Amffore
студент, учу c#

Уместен ли такой код?

Хотелось бы услышать экпертное мнение более опытных программистов.
Суть кода такова, что при каждом клике, объект меняет направление движения. Уместен ли такой подход и с чем могут возникнуть проблемы? Есть ли более рационально решение данной задачи?

Пока что из явных проблем, обнаруживается мало заметное, самопроизвольное увеличение скорости у объекта на долю секунды.

public float speed; //скорость объекта

    private Rigidbody2D rb2d;

	void Start () {
        rb2d = GetComponent<Rigidbody2D>();
	}

    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            rb2d.velocity = Vector2.right * speed * Time.deltaTime;
            
            if (rb2d.position.x > 0)
            {
                rb2d.velocity = Vector2.left * speed * Time.deltaTime;
            }

            if (rb2d.position.x < 0)
            {
                rb2d.velocity = Vector2.right * speed* Time.deltaTime;
            }
        }
        
    }
  • Вопрос задан
  • 117 просмотров
Решения вопроса 1
Griboks
@Griboks Куратор тега Unity
if (Input.GetMouseButtonDown(0)) rb2d.velocity*=-1;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы