• Почему Length массива 0, хотя у него есть элементы?

    @MifanyaRa
    Может быть всё банально - на сцене два объекта с этим скриптом. В одном массив не пустой, в другом пустой.

    Попробуй поискать в окне Hierary в строке поиска сверху окна так t:<Имя Скрипта>

    P.S. вводить символы <> не нужно. Например, если бы скрипт назывался DialogSystem, то поисковый запрос выглядел бы так t:DialogSystem
    Ответ написан
  • C# Unity. Как переопределить направление "forward" по умолчанию для 2D объекта?

    @MifanyaRa
    В твоём случае надо лучше использовать
    if(Input.GetKey(KeyCode.UpArrow))
    {
        transform.position += Vector3.up * _speed * Timed.delta;
    }


    где _speed это выведеное поле в испектор, значение которого ты сможешь удобно менять во время игры.
    [SerializeField] private float _speed = 10f;

    аналогично что бы двигаться вниз
    if(Input.GetKey(KeyCode.DownArrow))
    {
        transform.position -= Vector3.up * _speed * Timed.delta;
    }


    и для вправо и влево
    if(Input.GetKey(KeyCode.RightArrow))
    {
        transform.position += Vector3.right * _speed * Timed.delta;
    }
    if(Input.GetKey(KeyCode.LeftArrow))
    {
        transform.position -= Vector3.right * _speed * Timed.delta;
    }


    А то, что ты использовал transform.forward - это больше для 3D игр подходит.

    И вот тебе теория по векторам. Я думаю что здесь всё хорошо рассказано для твоего уровня https://habr.com/ru/post/131931/
    Ответ написан
    Комментировать