Игрок не двигается вниз под действием силы тяжести после трансформации положения - UNITY 2D - PullRequest
0 голосов
/ 27 марта 2020

Я играю в игру, в которой мне нужно трансформировать позицию игрока после того, как он выполнит задачу, но когда я трансформирую его, он застрял в воздухе на новой позиции трансформации, даже если у меня установлен Rigibody2D с гравитационной шкалой 2. Когда я перемещаю его вручную, перетаскивая и отпуская, он падает на землю нормально. Я довольно новый, поэтому любая помощь будет оценена. Я не могу определить проблему. Вот код,

    public GameObject player;
    public Transform nextPart;
    public Camera cam;


    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (PlayerController.canTransform)
        {
            player.transform.position = nextPart.position;
            cam.transform.position = new Vector3(nextPart.position.x, nextPart.position.y, -10);
        }

    }

Вот и картинка тоже,

enter image description here

1 Ответ

0 голосов
/ 27 марта 2020

Ваш код в функции Update. Это означает, что до тех пор, пока canTransform истинно, ваш игрок будет размещаться в этом преобразовании каждый кадр.

Вам необходимо установить значение логического возврата в значение false после перемещения вашего игрока или выполнить какую-либо другую проверку, чтобы убедиться, что вы не наделили не перемещайтесь в эту позицию более одного раза.

Возможно, вместо этого лучше установить проигрыватель на эту позицию в отдельной функции и просто вызывать ее один раз, когда вы достигнете этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...