Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Игра Top-Down unity. Как сделать так, что бы персонаж стоял в ту же сторону куда и шел.

Крч, я хочу сделать так, что бы персонаж стоял в ту же сторону куда и шел.


using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEditor.Experimental.GraphView;
using UnityEngine;

public class Player : MonoBehaviour
{
public float speed;
public Animator anim;
private Rigidbody2D rb;
private Vector2 direction;

void Start()
{
rb=GetComponent<Rigidbody2D>();
}
void Update(){
direction.x= Input.GetAxisRaw("Horizontal");
direction.y= Input.GetAxisRaw("Vertical");
anim.SetFloat("Horizontal", direction.x);
anim.SetFloat("Vertical", direction.y);
anim.SetFloat("Speed", direction.sqrMagnitude);
}


void FixedUpdate()
{
rb.MovePosition(rb.position+direction*speed*Time.fixedDeltaTime);

}
}

По дате
По рейтингу
Аватар пользователя
Мудрец

попробуй:

123456789101112131415161718192021222324252627282930313233343536373839404142
 using UnityEngine; 
 
public class Player : MonoBehaviour 
{ 
    public float speed; 
    public Animator anim; 
    private Rigidbody2D rb; 
    private Vector2 direction; 
 
    void Start() 
    { 
        rb = GetComponent<Rigidbody2D>(); 
    } 
 
    void Update() 
    { 
        // Получаем ввод от оси горизонтали и вертикали 
        float horizontalInput = Input.GetAxisRaw("Horizontal"); 
        float verticalInput = Input.GetAxisRaw("Vertical"); 
 
        // Создаем вектор направления движения 
        direction = new Vector2(horizontalInput, verticalInput).normalized; 
 
        // Если вектор направления не нулевой, то устанавливаем направление взгляда 
        if (direction != Vector2.zero) 
        { 
            transform.up = direction; // Поворачиваем персонажа в направлении движения 
        } 
 
        // Устанавливаем параметры анимации 
        anim.SetFloat("Horizontal", direction.x); 
        anim.SetFloat("Vertical", direction.y); 
        anim.SetFloat("Speed", direction.magnitude); // Используем magnitude для скорости 
    } 
 
    void FixedUpdate() 
    { 
        // Двигаем персонажа 
        rb.MovePosition(rb.position + direction * speed * Time.fixedDeltaTime); 
    } 
}