Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2024, 16:43   #1
ChestIotVaga
Пользователь
 
Регистрация: 21.11.2022
Сообщений: 90
Смущение Unity как сделать передвижение персонажу в изометрическом уровне

Добрый день знатоки столкнулся с темой изометрии в юнити не построил простенький уровень по гайду из ютуба хотел туда добавить персонажа и сделать так чтоб он ходил по уровню но столкнулся с проблемой что он тупо не ходить по клеткам вот мой код
Код:
using UnityEngine;

public class PlayerMove : MonoBehaviour
{
    private Rigidbody2D rb;
    private float moveH, moveV; // Объявляем переменные как float
    [SerializeField] private float moveSpeed = 2.0f;
    [SerializeField] private LayerMask groundLayer; // Маска слоя для пола
    [SerializeField] private float groundCheckDistance = 0.1f; // Расстояние проверки на землю

    private void Start()
    {
        rb = GetComponent<Rigidbody2D>();
        rb.gravityScale = 0; 
    }

    private void Update()
    {
        // Получаем ввод от пользователя
        moveH = Input.GetAxisRaw("Horizontal") * moveSpeed;
        moveV = Input.GetAxisRaw("Vertical") * moveSpeed;

        // Проверяем, находится ли персонаж на земле
        bool isGrounded = Physics2D.Raycast(transform.position, Vector2.down, groundCheckDistance, groundLayer);

        if (isGrounded)
        {
            // Нормализация вектора движения
            Vector2 movement = new Vector2(moveH, moveV).normalized * moveSpeed;
            rb.linearVelocity = new Vector2(movement.x, rb.linearVelocity.y); // Устанавливаем скорость по X и сохраняем Y
        }
        else
        {
            rb.linearVelocity = new Vector2(0, rb.linearVelocity.y); // Останавливаем движение по X, если не на земле
        }
    }

    private void OnDrawGizmos()
    {
        // Отображаем Gizmos для проверки земли в редакторе
        Gizmos.color = Color.red;
        Gizmos.DrawLine(transform.position, transform.position + Vector3.down * groundCheckDistance);
    }
}
видео с проблемой - https://imgur.com/a/WZ9YZ0J подскажите что не так на стенках и полу компоненты tilemap2d colider и composite colider
ChestIotVaga вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передвижение в unity Илья37 Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 07.03.2020 12:43
unity, объясните пожалуйста как сделать: purple_dragon Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 28.06.2019 08:19
Нужно сделать парсер по автоматическому подписанию перечня запросов Криптопро на уровне сервера Arturufa Фриланс 3 30.06.2017 23:27
Как сделать видимым передвижение Tab-ов yurkagagarin Microsoft Office Excel 5 07.02.2015 16:41
Как сделать передвижение ползунка слайдера при проигрывании песни jojo97 Общие вопросы .NET 2 05.01.2012 11:46