Как продвинуть персонажа вперед, а также направление движения лица?

введите описание изображения здесь Я новичок в Unity, буду благодарен за любую помощь.

Я хочу создать игру, в которой персонаж (показанный на изображении ниже) непрерывно движется вперед. Персонаж должен двигаться вверх, когда пользователь касается экрана мобильного устройства (длительное касание заставит персонажа двигаться вверх непрерывно), в противном случае персонаж медленно падает из-за силы тяжести. Основная идея - избегать касания препятствий, а движения персонажа должны быть извилистыми. Это трехмерная игра, но персонаж движется по осям x, y.

До сих пор я писал ниже код для перемещения персонажа вперед, а также для перемещения персонажа вверх при касании экрана мобильного устройства, но это не сработало, как ожидалось.

В методе обновления:

transform.position += Vector3.right * Time.deltaTime * movementSpeed;
if (Input.touchCount > 0)
{
    if (Input.GetTouch (0).phase == TouchPhase.Began)
    {
        // move player against the gravity
        transform.position += Vector3.up * Time.deltaTime * movementSpeed;
    }
    if (Input.GetTouch (0).phase == TouchPhase.Ended)
    {
        // gravity acts on the character, so character falls down
    }
}

person suresh ch    schedule 25.08.2016    source источник
comment
Не сработало, как ожидалось, так что же случилось? Просто ничего или какое-то другое поведение?   -  person turoni    schedule 25.08.2016
comment
Вы используете rigidbody или character controller на своем персонаже?   -  person Umair M    schedule 25.08.2016


Ответы (1)


Вы можете ознакомиться с одной из функций Quaternion - LookRotation:

https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html

Код должен быть таким простым:

Vector3 relativePos = target.position - transform.position;
Quaternion rotation = Quaternion.LookRotation(relativePos);
transform.rotation = rotation;

где target.position - это положение, в котором вы касаетесь экрана, transform.position - это положение, а transform.rotation - вращение вашего движущегося объекта.

Надеюсь это поможет :)

person D. Joe    schedule 25.08.2016
comment
Это отличный код, спасибо. Мои персонажи теперь смотрят на то, что я выбираю, заменяя 'target.position' положением, на которое они должны смотреть. - person Eatton; 08.06.2019