WasTabon
@WasTabon

Движение 2д объекта в сторону, которую он смотрит?

Серьезно, весь интернет перерыл, Vector3.forward , Vector2.up , transform.forward
все перепробовал, ничего не помогло
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 2
WasTabon
@WasTabon Автор вопроса
float moveInputY = Input.GetAxis("Vertical");
        if (moveInputY > 0)
        {
            Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            Vector2 newPos = Vector2.MoveTowards(rigidbody2D.position, mousePosition, Time.fixedDeltaTime * shipSpeed);
            rigidbody2D.MovePosition(newPos);
        }

Что-то такое придумал накодить, но объект тупо вне зависимости от поворота движется к мышке, что убого и криво смотрится
Ответ написан
Комментировать
@tvoypsheni4ka
У компонента Sprite Renderer есть Flip, он то и позволяет менять сторону взгляда, поменять его можно в самом коде,
private SpriteRenderer sprite;
public float speed = 3f;
private bool FacingRight = true; //задаем булевую переменную под сторону, куда будет смотреть объект
private void Awake()
{
   sprite = GetComponentChildren<SpriteRender2D>();
}
private void Update()
{
     float moveInput = Input.GetAxis("Horizontal"); //в Update запишем код для перемещения объекта
     transform.position += new Vector3(moveInput, 0, 0) * speed * Time.deltaTime;
     sprite.flipX = FacingRight < 0 ? true : false;  //Задаем условие при котором будет поворачиваться объект в виде (условие - ?) (действие) (: - иначе) (действие иначе)
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы