Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Евгения Татарникова Знаток (266), открыт 1 неделю назад
Крч, я хочу сделать так, что бы персонаж стоял в ту же сторону куда и шел.


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);

}
}

1 ответ
Milito. Мудрец (10188) 1 неделю назад
попробуй:

 using UnityEngine; 

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

void Start()
{
rb = GetComponent();
}

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);
}
}
Похожие вопросы