• Как сделать карту для игры?

    SherAlex
    @SherAlex
    Game Developer
    Это слишком комплексная задача, чтобы суметь расписать её в формате быстрого ответа на вопрос.

    Ваше решение есть в виде готового плагина. Просто оценить масштаб происходящего и стоимость плагина.

    Если хотите написать с нуля сами - то предлагаю использовать Canvas и отдельные изображения на нём.
    Напишите скрипт к каждому изображению, который будет улавливать нажатие на это изображение мышкой.
    Таким образом вы сможете обработать нажатие.
    Самый простой способ выделить регион - это просто заменить картинку не выделенного региона на выделенный.

    Как видите - вопросов может быть дальше ещё больше. Но суть такая - нужны отдельные изображения и обработчики щелчка на них.
    Ответ написан
  • Как поворачивать модель игрока в сторону, куда он идёт он идет в unity?

    SherAlex
    @SherAlex
    Game Developer
    У transform есть метод LookAt, принимающий направление в качестве параметра.
    https://docs.unity3d.com/ScriptReference/Transform...
    Советую перейти по ссылке и поэкспериментировать в коде со значениями. Собственно, вызывать этот метод можно там же, где вызывается метод перемещения.

    Кроме того - есть методы, изменяющие углы трансорфма. Советую попробовать и их тоже.
    Вообще почаще заглядывайте в документацию Юнити. Там есть 95% ответов на вопросы, которые у Вас могут возникнуть.
    Ответ написан
  • Как записать массив внутри массива?

    SherAlex
    @SherAlex
    Game Developer
    Насколько мне известно, в C++ возможности инициализировать такой массив нет. Все элементы массива в C++ должны быть одинакового типа. В Вашем случае - byte. А массив не является элементом типа byte.
    Он является элементом типа byte* (указатель на byte).
    Кроме того - Вы хотите хранить в массиве число и строку. Это тоже разные типы, которые хранить в одном массиве нельзя.

    Я предлагаю такое решение - создайте структуру, в которой будите хранить byte и строку.

    struct ByteAndString
    {
        byte value;
        string str;
    };

    И заполните весь массив этой структурой

    int n = 5;
    ByteAndString** array = new ByteAndString*[n];
    for (int i = 0; i < n; i++)
    {
        array[i] = new ByteAndString[n];
    }


    Теперь можете обращаться к элементам этого массива, каждый из которых содержит строку и byte.

    array[0][0].value = 10;
    cout << array[0][0].value;


    Получается так, что теперь у Вас каждый элемент массива содержит в себе byte и строку. Но Вы можете где то просто не использовать строку. Это не потратит много лишней памяти :)

    Есть способ хранить в массиве разные объекты - можно сделать их приводимыми к объекту одного типа и записывать в массив в этом типе, а при обращении обратно приводить в изначальный тип. Для этого нужно применять ООП подход. Это на порядок сложнее, чем инициализировать двумерный статический массив. Поэтому предлагать такой способ решения не буду :D
    Ответ написан
    Комментировать
  • Как сделать в юнити начисление баллов каждую секунду?

    SherAlex
    @SherAlex
    Game Developer
    Есть такая функция как WaitForSeconds, её можете вызывать в асинхронной функции (то есть с функции вида async void fun () ).
    Например
    async void AddBall()
    {
    while(needAddBall)
    {
    Ball++;
    await new WaitForSeconds(1);
    }
    }

    Она будет исполняться как бы параллельно с основным потоком игры, то есть не будет ему мешать.
    Ответ написан
  • Какую тему выбрать для курсовой по Arduino + нейросеть?

    SherAlex
    @SherAlex Автор вопроса
    Game Developer
    Отлично! Спасибо большое! Про погоду даже в голову не приходило) Хотя идея классная.
    Про лабиринт тоже думаю, но в силу безграмотности своей не очень хорошо вижу применение нейросети.
    Ответ написан
    Комментировать