@kovurado

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

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

мой скрипт:
using UnityEngine;

public class gg : MonoBehaviour
{
    [SerializeField] private float Speed;
    private float HorSpeed;
    [SerializeField] private float Imp;

    private bool isGround;
    private Animator anim;
    

    Rigidbody2D rb;

    private void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        anim = GetComponent<Animator>();
    }

    private void FixedUpdate()
    {
        transform.Translate(HorSpeed, 0, 0);
        if (HorSpeed == 0)
        {
            anim.SetBool("running", false);
        }
        else
        {
            anim.SetBool("running", true);
        }
    
        
    
    }

    public void OnRight()
    {
        HorSpeed = Speed;
    }

    public void OnLeft()
    {
        HorSpeed = -Speed;
    }

    public void OnJump()
    {
        if (isGround)
            rb.AddForce(new Vector2(0, Imp), ForceMode2D.Impulse);
    }

    public void Stop()
    {
        HorSpeed = 0;
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Platform")
            isGround = true;
    }

    private void OnCollisionExit2D(Collision2D collision)
    {
        if (collision.gameObject.tag == "Platform")
            isGround = false;
    }



}
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@noytmant
В теории нужно создать bool на каждую из ситуаций
Допустим на данный момент мы имеем OnLeft и теперь можно создать bool PosLeft который будет изначально равен false
В момент, когда мы нажимаем скажем так на OnLeft, PosLeft становится равен true
И уже внутри отдельного цикла мы проверяем PosLeft исходя из которого устанавливаем положение персонажа
И такой способ можно использовать и с другими ситуациями
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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