• Как сделать движение куба с вращением?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Вот в этом видео понятно и с визуализацией объясняется, как это реализовать. Да, по-английски, но это всего полторы минуты и с визуализацией. Конкретного кода с решением нет, но сам принцип становится понятен.
    Ответ написан
    1 комментарий
  • Почему не загружается сцена из кода?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Edited: Тебе буквально в ошибке написали, что нужно сделать. File -> Build Settings -> Перетащить новую сцену в окно -> Поставить галочку напротив этой сцены game.
    Ответ написан
    4 комментария
  • Не найден метод пригодный для переопределения?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Вы написали ключевое слово override, которое означает, что ты переопределяешь наследуемый метод. Но VS тебе говорит, что у наследуемого класса нет такого метода и поэтому нечего переопределять. А это от того, что ты вообще не наследуешь никакой класс. Либо ты хотел унаследовать какой-то класс, но забыл, либо ты скопипастил лишнее ключевое слово override. Даже целых два.
    Ответ написан
    2 комментария
  • Что значит ошибка не присвоен объект?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Судя по твоему коду, смею предположить, в это поле ты должен был через инспектор назначить объект, который служит маркером позиции, в которой должен появиться создаваемый экземпляр bullet.
    Ответ написан
    2 комментария
  • С чего начать в 30 лет?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Unity - это игровой движок. Движок - это набор реализаций общих типовых задач в предметной области, в данной случае - геймдева. Использование Unity не избавляет вас от программирования, а значит, прежде чем изучать Unity, вам нужно сначала научиться программировать на C#.
    Ответ написан
    6 комментариев
  • Как реализовать механику поворота?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Если вам нужен мгновенный поворот машинки, то вам подойдёт Transform.LookAt
    Если нужен плавный во времени поворот, то вдобавок ещё и это Vector3.RotateTowards. Туда можно передавать и Vector2.

    UPD: LookAt для 2д не годится, предложил по сути на основании догадки, так как в 3д работало. Но за 2 минуты нагуглил рабочий способ по запросу "unity 2d rotate sprite {принять гугловское автодополнение запроса} towards mouse":
    float angle = Mathf.Atan2(target.position.y - transform.position.y, target.position.x - transform.position.x) * Mathf.Rad2Deg;
                transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle));

    Лично создал тестовый проект - проверил, работает. Важный нюанс - спрайт машинки должен быть повёрнут по умолчанию вправо,
    пример:
    628b6652f239e206690280.png

    Вывод: учитесь гуглить. Это азы. С плавным, не мгновенным, поворотом разберётесь сами.

    UPD2: Хотя, всё же спрайт не обязательно должен быть повёрнут вправо. Просто учитывайте, что приведённый код предназначен для повёрнутых направо. Если ваши спрайты изначально нарисованы передом вверх то просто вычтите 90 из angle. Или прибавьте 90, если спрайт почему-то повёрнут вниз. Но самое главное, если вы используете несколько разных спрайтов - то у них у всех должна быть одинаковая изначальная ориентация.
    transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle));// спрайт, повёрнутый вправо
    transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle - 90));// спрайт, повёрнутый вверх
    transform.rotation = Quaternion.Euler(new Vector3(0, 0, angle + 90));// спрайт, повёрнутый вниз
    Ответ написан
  • Operator '==' cannot be applied to operands of type 'Collider[]' and 'bool'???

    EveningEugene
    @EveningEugene
    Unity-разраб
    У вас в классе есть переменная public bool ButtonOn;
    А также внутри метода Update есть переменная с таким же именем, но другим типом Collider[] ButtonOn;
    Когда в методе Update вы делаете сравнение if (ButtonOn == true), подразумевается именно локальная переменная Collider[] ButtonOn. То есть, вы пытаетесь сравнить Collider[] с bool. Либо меняйте название локальной переменной либо пишите так if (this.ButtonOn == true), тогда будет использоваться внешняя переменная класса.
    Рекомендую почитать про области видимости. А ещё при добавления кода в пост используйте тег
    <code lang="cs">
    //your code
    </code>
    Ответ написан
    1 комментарий
  • Из-за чего платформа может дергаться?

    EveningEugene
    @EveningEugene
    Unity-разраб
    Если ты используешь FixedUpdate (что правильно для физики), то соответственно нужно использовать fixedDeltaTime, а не deltaTime (которое для Update)
    Ответ написан
    4 комментария