• Как процессор ''понимает'' машинный код?

    @Elsper
    Мне кажется комментаторы только запутали человека. Одни пишут, что нет аналогового сигнала и всё нули и единицы, другие пишут, что нули и единицы - это абстракция (а значит всё работает на аналоговых сигналах)

    Вполне можно рассуждать что есть 1 и 0. Единица - наличие определенного напряжения. 0 - его отсутствие (или слишком слабое напряжение)
    Как на это смотреть, как на аналоговый или логический сигнал чисто дело вкуса.
    Главное - надо понимать, что компьютер (как и всякая схема), будет делать то, таким методом и с такими результатами, как это предусмотрели инженеры этой схемы.

    На базе транзисторов, диодов и резисторов создаются логические элементы, это которые НЕ, И, ИЛИ
    Оперируя этими логическими элементами (из физических транзисторов, диодов и резисторов), создаем уже более сложные микросхемы, отвечающие уже за конкретные операции (побитовое суммирование например)

    Мне по запросу "логические элементы на транзисторах" гугл первой же ссылкой достаточно понятный материал выдал.
    studref.com/532624/tehnika/logicheskie_elementy_logicheskie_shemy_tranzistorah

    Элемент памяти это "тригер" (можно в вики прочитать) тоже просто микросхема, состояние которой можно определять и которое она будет продолжать выдавать на выходе даже без входного сигнала.

    Я в детстве увлекался этим.
    В техникуме часы спроектировал для диплома.
    __
    Кстати автор, если какой-то ответ вам помог, не забудьте пометить его(их), как решение.
    Ответ написан
    1 комментарий
  • Проблема с отрисовкой спрайтов UI Spine. Как решить?

    @Elsper
    Сразу бросается в глаза вариант сделать refresh и reimport на атлас и текстуру. (Прежде убедиться, что они актуальные)

    Потому, что визуально это косяк нарезки. Я с этим сталкивался.

    Так же можно удалить (убрать на время поиска ошибки) файлы с расширением .asset (вместе с .meta), и пусть юнити их заново создаст при реимпорте папки содержащей файлы вашей анимации.
    Ответ написан
    Комментировать
  • Нужно найти 10 елемент,я так понимаю это прогрессия,совсем не могу разобраться?

    @Elsper
    Записал задачу ты конечно ужасно. По такой записи ничего не понятно.

    Решение вроде такое.
    int[] allT = new int[11];
    allT[0] = 1;
    for (int i = 1; i < 11; i++)
    {
        for (int i2 = 0; i2 < i; i2++)
        {
            allT[i] += allT[i2] * allT[i - i2-1];
        }
    }


    allT[10] равно 16796
    Ответ написан
  • Как решить задачу на c++?

    @Elsper
    Если код не важен, а нужно именно решение, то вот на привычном для меня C#
    Идея в том, что мы просто симулируем поворот замка и смотрим что происходит.

    int A = 2;
    int B = 3;
    int N = 3;
    int K = 1;
    
    int maxPos = N;
    int currentPos = 1;
    
    int countReachK = 0;
    int countPairs = 0;
    
    while (countReachK < K)
    {
        //Если надо приводим к нулю чтобы не считать пересечение два раза.
        if ((currentPos == maxPos) && (A>0)) 
        currentPos = 0;
    
        currentPos += A;
    
        //Проверка на пересечение или остановку.
        while (currentPos >= maxPos)
        {
            currentPos -= maxPos;
            countReachK++;
        }
    
        //Если надо приводим к максимуму чтобы не считать пересечение два раза.
        if ((currentPos == 0) && (B>0)) 
        currentPos = maxPos;
    
        currentPos -= B;
    
        //Проверка на пересечение или остановку.
        while (currentPos <=0)
        {
            currentPos += maxPos;
            countReachK++;
        }
    
        countPairs++;
    }
    if (countReachK != K)
        countPairs = -1;
    
    // countPairs и есть искомый результат.
    Ответ написан
    Комментировать
  • Как должен выглядеть алгоритм цикла с таким условием?

    @Elsper
    В общих чертах как-то так.
    Основная идея создать простой булевый массив из двух значений, чтобы собственно можно было с помощью его индекса "перебирать" любые величины A B и C
    bool check = true;
     bool[] b = new bool[2] { true, false };
     for (int i1 = 0; i1 < 2; i1++)
     for (int i2 = 0; i2 < 2; i2++)
     for (int i3 = 0; i3 < 2; i3++)
     {
         //Подставить тут требуемые сравнения.
         bool result1 = (b[i1] || b[i2]);
         bool result2 = (b[i2] || b[i1]);
    
         if (result1 != result2) check = false;
     }

    Где на выходе смотреть на check. Если он осталься true значит пары эквиваленты

    Закодировать сравнения для result1 и result2 конечно придется самому.
    Ответ написан
    Комментировать
  • Почему персонаж проваливается под текстуры?

    @Elsper
    Очевидно дело в сортировка или глубине. Чтобы лучше понять причины тщательно сравни в инспекторе параметры темной клетки, на которой он стоит и красной клетки, которая его перекрывает.
    То, в чем они отличаются и укажет на причину.

    Так же сравнивай параметры позиционирования у персонажа, когда он стоит и когда начинается анимация.

    По скриншотам вообще ничего непонятно, кроме того, что да происходит перекрытие.
    Если не получится разобраться самостоятельно, кинь хотя бы скрины клеток, о которых я написал, в инспекторе
    Ответ написан
  • Как сделать автозаполнение в Visual Studio для Unity?

    @Elsper
    Убедись, что в VS открываешь весь проект, а не один файл.

    Если это не поможет открывай проект из Unity. Или двойным кликом на конкретный скрипт или через "Open C# Project"
    Ответ написан
  • Можно ли поместить созданный объект в массив?

    @Elsper
    Ты создаешь массивы нулевого размера, в них просто нет места.
    Массивы лучше использовать, когда ты заранее знаешь сколько у тебя объектов.

    Если ты хочешь "резиновые массивы" используй List

    Объявление
    public List<GameObject> goCube = new List<GameObject>();


    А добавление
    goCube.Add(твой объект);

    Это раз.
    __
    Чтобы получить ссылку на объект, который ты создал через метод Instantiate нужно получить его возврат
    var CreatedObject = Instantiate(...);
    И уже с этим CreatedObject работать (в твоем случае закидывать в List)

    Это два.
    Ответ написан
    Комментировать
  • Unity: В игре не отображается заспавненый префаб. Как исправить?

    @Elsper
    Похоже, ты их создаешь в одной и той же точке сцены.
    Instantiate(coldObject[random], new Vector2(12f, 0f), Quaternion.identity);
    Ответ написан
    Комментировать
  • Почему после возрождения объекта камера перестаёт за ним следить?

    @Elsper
    Ты создаешь новый объект, о котором камера не знает.

    Самое простое
    в апдейте камеры после
    if (player)
    {
    **
    }
    дописать
    else FindPlayer(isLeft);

    Правда это оставляет потенциал для ошибки на случай, если объекта на сцене так и не будет. Поэтому лучше чтобы LevelManager имел ссылку на камеру и вызывал FindPlayer, когда это надо, например в Respawn.
    Ответ написан
    1 комментарий
  • Как изменить цвет объекта из скрипта?

    @Elsper
    Плохо, что ты спрашиваешь вопрос с полностью выдуманным кодом.

    "даю ссылку на префаб объекта в этот скрипт"
    Надо давать ссылку на объект.

    1) Или ищи тут. (Даешь ссылку или не тому объекту, или не на тот объект, или не даешь вовсе)
    "Спавню различные объекты по нажатию ЛКМ, и даю ссылку на префаб объекта в этот скрипт"

    2) Или вешай свой класс на префаб, не создавая промежуточный куб и обращайся сразу к GetComponent()
    Только из апдейта его вытащи в Awake или Start например
    Ответ написан
    Комментировать