@Hutson

Как после столкновением с коллайдером перестать двигаться и остановить счёт?

Кое-как я смог реализовать подсчёт счёта и движение по бокам. Но возникла проблема: после "смерти" персонажа счёт продолжает идти, пока не перезапустится уровень, и, хоть я и прекратил движение прямо, по бокам я не смог от него избавиться. Выходит так, что после того как я врезался, счёт продолжает начисляться и ещё я имею возможность просто перемещать игрока вправо/влево.
Как сделать после столкновение с коллайдером остановку счёта и убрать возможность передвигать персонажа влево/вправо?

Необходимый код для понимания:
spoiler
// Начисление счёта
    private float timerScore = 0.1f;
    private float timerScore_;
    void Start()
    {
        timerScore_ = timerScore;
    }
    void Update()
    {
        score.text = "" + scoreCounter; // выводит счёт
    }
    void FixedUpdate() {
        if (timerScore > 0) {
            timerScore -= Time.deltaTime;
        }
        else {
            timerScore = timerScore_;
            instance.AddScore(); //прибавляем счёт
        }
    }
    public void AddScore() {
        scoreCounter++;
    }

//Движение персонажа вбок
    Ray ray = cam.ScreenPointToRay(Input.mousePosition);
    if (Input.GetKey(KeyCode.Mouse0))
        {
            transform.position = Vector3.MoveTowards(transform.position, new Vector3(transform.position.x, 
            transform.position.y, ray.origin.z), mouseSpeed * Time.deltaTime);
        }

//Реализация столкновение игрока с коллайдером
    void OnCollisionEnter(Collision wall) {
        if (wall.gameObject.tag == "Respawn") { // check whether you hit the wall
        animator.SetTrigger("death");
        ResetSpeed();
        ResetMove();
        Invoke("ReloadLevel", 2.5f); // reload level in 2.5s
        }
    }
    void ResetSpeed() {
        zSpeed = 0;
    }
    void ResetMove() {
       //Здесь хотел реализовать прекращение движение вправо/влево, возможно, не правильно
    }

  • Вопрос задан
  • 83 просмотра
Пригласить эксперта
Ответы на вопрос 1
DanceM
@DanceM Куратор тега Unity Game Engine
Кто хочет -ищет способ, кто не хочет -ищет причину
Не, ну серъёзно. Как перестать двигать персонажа после столкновения? Легко - просто не надо его после столкновения двигать. Как остановить счет? Перестать счет считать. Ну "тыжпрограммист", ну подумайте чуток головой.
Ответ написан
Ваш ответ на вопрос

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

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