Страница 1 из 1

Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 14:38
Ivan1983
Есть объект Player у него есть коллайдер с физикой. Когда игрок врезается в стену то останавливается но при этом его transform.position продолжает меняться.
Движение сделано так:
Синтаксис:
Используется csharp
           
if (Input.GetKey(KeyCode.W))
            {
            player.transform.Translate(new Vector3(0, speed * Time.deltaTime, 0));
}
 

я понимаю что вектор есть вектор и ему пофиг на физику. Пробовал делать условие мол если столкнулся то Нельзя двигаться но тогда он вообще перестает двигаться и как бы прилипает к стене навсегда. Соответствено выход из коллизий не срабатывать.

Как быть?

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 14:42
A-Train
А чем вам не угодил стандартный character controller?

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 14:44
Ivan1983
A-Train писал(а):А чем вам не угодил стандартный character controller?

Игра 2д вид сверху. Вроде как в стандартном нет этого или я ошибаюсь?

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 14:47
A-Train
Тогда двигайте через Rigidbody2d.AddForce

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 15:20
Ivan1983
A-Train писал(а):Тогда двигайте через Rigidbody2d.AddForce

Моя ошибка дал не достаточно информации.
Персонаж двигается клавиатурой WASD поворачивается он за мышкой но, при этом направление движения по клавишам не меняется то есть если нажать W и лицо его вверх монитора смотрит он идет в верх если лицо вниз он все равно идет вверх но уже спиной. Если я использую Rigidbody2d.AddForce он начинает двигаться как черт знает кто.
Иерархия объекта
Player -просто пустой gameobject
внутри него тело персонажа со скриптом, спрайтом и коллайдером.

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 16:00
Левш@
A-Train писал(а):А чем вам не угодил стандартный character controller?

Ivan1983 писал(а):Игра 2д вид сверху. Вроде как в стандартном нет этого или я ошибаюсь?

Какое отношение имеет контроллер движения к типу камеры ? (popcorn1)

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 26 май 2016, 16:14
Ivan1983
Левш@ писал(а):
A-Train писал(а):А чем вам не угодил стандартный character controller?

Ivan1983 писал(а):Игра 2д вид сверху. Вроде как в стандартном нет этого или я ошибаюсь?

Какое отношение имеет контроллер движения к типу камеры ? (popcorn1)

Я выше написал как должен двигаться мой персонаж. Это есть в стандартном контроллере? Я как бы не шарю в юнити с флеша пытаюсь перелезть пока все очень сложно дается...

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 27 май 2016, 11:29
A-Train
Вы ведь наверняка хотите делать игры более замысловатой кинематикой по сравнению с сокобаном? В этом случае вам все равно придется изучить и использовать класс Rigidbody2D, и никуда от этого не спрятаться не скрыться. А ответ на ваш вопрос там сокрыт, больше негде.

Re: Физика срабатывает а координаты меняются что делать?

СообщениеДобавлено: 31 май 2016, 12:48
Ivan1983
A-Train писал(а):Вы ведь наверняка хотите делать игры более замысловатой кинематикой по сравнению с сокобаном? В этом случае вам все равно придется изучить и использовать класс Rigidbody2D, и никуда от этого не спрятаться не скрыться. А ответ на ваш вопрос там сокрыт, больше негде.

Уже разобрался. Спасибо за все.

P>S> кому интересно сделал так:
Синтаксис:
Используется csharp
      void FixedUpdate ()
        {
        float moveHorizontal = Input.GetAxis("Horizontal");
        float moveVertical = Input.GetAxis("Vertical");
        Vector2 movement = new Vector2(moveHorizontal, moveVertical);

        rigidbody.velocity = movement * speed;
}