Задать вопрос
  • Как исправить баг повторной асинхронной загрузки сцены?

    logpol32
    @logpol32 Автор вопроса
    Вот правильный ответ.
    Оказывается, правильный код есть в мануале Unity.
    Но, почти во всех видео на ютубе, показан неверный код, с багом повторной загрузки.
    using System.Collections;
    using UnityEngine;
    using UnityEngine.UI;
    using UnityEngine.SceneManagement;
    
    
    public class LoadingSceneScript : MonoBehaviour
    {
    
        [SerializeField] private Image loadingBarFillObject;
        [SerializeField] private Text loadingTextObject;
        private string sceneName = "Scene1"; // Имя сцены для загрузки.
        private string loadingText = "Loading...";  // Надпись при загрузке.
        float progress;
    
        void Start()
        {
            loadingTextObject.text = loadingText +" 0%";
            DataHolder.ReadAllLocalizationData(() =>
            {
            StartCoroutine(LoadSceneCoroutine());
            });
        }
    
    
        IEnumerator LoadSceneCoroutine()
        {
            yield return null;
    
            //Begin to load the Scene you specify
            AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(sceneName);
            //Don't let the Scene activate until you allow it to
            asyncOperation.allowSceneActivation = false;
    
     
            while (!asyncOperation.isDone)
            {
                //Output the current progress
                progress = asyncOperation.progress / 0.9f;
                loadingBarFillObject.fillAmount = progress;
                loadingTextObject.text = loadingText + string.Format(" {0:0}%", progress * 100f);
        
    
                // Check if the load has finished
                if (asyncOperation.progress >= 0.9f)
                {    
                        asyncOperation.allowSceneActivation = true;
                }
    
                yield return null;
            }
        }
    }
    Ответ написан
    Комментировать
  • С чего начать изучение Unity?

    До 4 включительно. Вполне достаточно.
    Остальное уже относится к архитектурным решениям. Позже, когда и если понадобится можно будет дочитать.
    Перегрузки, частичные классы, события - без всего этого можно обойтись.

    Также настоятельно рекомендую использовать чат гпт. Для этого понадобится аккаунт гугл + анонимайзер planet vpn (не реклама, со многими анонимайзерами не работает)
    https://chat.openai.com/

    Он поможет вам в написании кода.
    Вот прямо сейчас написал ему -
    У меня на сцене есть игрок с именем Player. Как при нажатии кнопки вправо сделать так, чтобы он двигался?

    И он мгновенно ответил.

    Для того чтобы сделать игрока двигающимся при нажатии кнопки вправо, вам понадобится написать скрипт на языке C# и применить его к объекту игрока. Вот простой пример скрипта для движения игрока вправо:

    using UnityEngine;
    
    public class PlayerController : MonoBehaviour
    {
        public float moveSpeed = 5f; // Скорость движения игрока.
    
        void Update()
        {
            // Проверяем, нажата ли кнопка вправо (стрелка вправо или кнопка "D" на клавиатуре).
            if (Input.GetKey(KeyCode.RightArrow) || Input.GetKey(KeyCode.D))
            {
                // Перемещаем игрока вправо по оси X.
                transform.Translate(Vector3.right * moveSpeed * Time.deltaTime);
            }
        }
    }

    Чтобы использовать этот скрипт, создайте новый C# скрипт в Unity и назовите его, например, "PlayerController". Затем примените этот скрипт к объекту игрока, добавив его на компонент "PlayerController". В инспекторе скрипта вы сможете настроить параметр moveSpeed, чтобы регулировать скорость движения игрока.

    Теперь при нажатии кнопки вправо (стрелка вправо или кнопка "D"), игрок будет двигаться вправо.
    __

    Круто? Он вас будет учить и помогать вам.
    Ответ написан
    Комментировать
  • Почему опасно в php выставлять неограниченное время жизни сессии?

    Интересный вопрос по безопасности и удобству использования сайта, системы, веб приложения.

    Нравится ли пользователю, когда его выкидывает или требует заново вводить логин и пароль? Нет.
    Более того это не нормально. Лично мне не понравится, что я каждый день буду должен вводить пароль, например на том же ютубе. Не надо так - пользователи, скорее всего, уйдут с сайта.

    А если это личный кабинет банка? Я вошел и...забыл выйти. А войти в веб интерфейс я могу и на терминале банка.
    Снял деньги и ушел, забыв выйти. У банкоматов, конечно есть доп мера безопасности - приложить карту для совершения операции, пин...но не суть.
    Вот для этого и есть время жизни сессии - принудительно разлогинить пользователя.

    Лично я не использую встроенный механизм сессий, а использую куки (срок жизни год).
    Чтобы пользователь сам решал, когда он хочет разлогиниться. Чтобы не возмущался, а что опять разлогинило?
    У меня не банковская система, и похитить куки Васи, Пети - никому не нужно и не принесет особого вреда.
    А если даже и похитят - то он сам виноват.
    Виноват ли продавец замка, что у клиента похитили ключи? Нет.
    А похищают что угодно, номера карт, пин...тут уже человеческий фактор.

    Если я делаю систему, где есть финансы, пополнение счета, то тогда уже можно использовать сессии, устанавливать срок их жизни.

    И вообще есть телефон. Вход по смс. Если пользователи доверяют вам и не боятся засветить свой номер.
    Ответ написан
    1 комментарий
  • Грозит ли чем-то копирование сайта?

    Да - это нарушение авторских прав.
    Разумеется, решение может вынести только судья, его можно оспорить в высшей инстанции и т.д., но даже создание продукта сходного до степени смешения (эту степень определит суд, юристы будут спорить, аргументировать, экспертизы и т.д.) есть нарушение авторских прав.
    А вы хотите и дизайн скопировать и функционал и даже название!

    Я ни к чему не призываю, но если вдруг кто то выложит такую систему или бесплатную копию анонимно, нарушение конечно же будет, но сделать что то с этим будет трудно т.к. искать анонима из за такой ерунды вряд ли станут.
    Тут, конечно, вопрос инфобеза - какие там айпишники, впнки, следы, юрисдикция хостера - но в общем как то так.

    А умнее не копипастить продукт, а экспроприировать (морской термин) идею, улучшать её (добавить фишки, понять чего людям не хватает, что там не нравится) и выпускать конкурентный, легальный и платный продукт.
    Ответ написан
  • Ошибка 404 - почему не работает роутинг/контроллер/шаблон?

    logpol32
    @logpol32 Автор вопроса
    Долго искал в гугле, пробовал разные варианты и вот что сработало.
    Нужно было:

    1) в корень сайта положить файл .htaccess с содержимым:
    Options -Indexes
    RewriteEngine On
    RewriteRule ^(.*)$ public/$1 [L,QSA]


    2) в папку public положить файл .htaccess с содержимым:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA]


    Работает. Открывает нужные страницы.

    PS
    Но я всё ещё не понимаю правильно ли это (так вообще делают? в других системах и фреймворках такого не встречал) и почему это не было сделано автоматически, при установке symfony, пакетов и т.д.?
    Ответ написан
  • Как настроить форму заявки на PHP?

    // Если не установлена переменная name (не передано имя).
    if (!isset($_POST['name']))
    {
    echo 'Ошибка!';
    exit;
    }
    Ответ написан
    1 комментарий
  • Как упорядочить id записей в MySQL?

    Варианты:
    1) Перед удалением записи узнать её id. Вставить новую запись с указанным id.
    2) Удаляя запись, записывать её id в другую таблицу - отдельную таблицу для id.
    При вставке новой записи, смотреть есть ли в таблице для id айди.
    Если есть - вставлять новую запись с указанным id (и удалить этот id из таблицы для id). Иначе вставлять запись с автоинкрементным айди.

    PS
    Id обычно первичный ключ. Нельзя вот так просто сдвинуть ключи т.к. одна запись удалилась.
    Поэтому и создается новый id, например 4, когда до этого удалили 3.
    По идее в бд сейчас айди 1 и 2 и 3 свободен. Но не известно на что ссылался этот ключ, на какие таблицы.
    Ответ написан
    Комментировать
  • В базу данных не отправляются данные которые введены в форме, что делать?

    а другие строки не появляются

    Возможно потому что
    $mysql->close();
    Вы закрыли соединение с БД после же первого запроса.
    А у вас цикл.
    Закрывать соединение почти никогда не надо (оно закроется само когда выполнится скрипт).
    Ну или вынесете закрытие за цикл.

    Соединение с БД
    $mysqli = new mysqli($hostname, $username, $password, $base);
    // Если ошибка - сообщаем что не можем соединиться с БД.
    if ($mysqli->connect_errno){echo 'Error. System can not connect to the database.'; exit();}
    // Настройки
    $mysqli->query("set character_set_client='utf8'");
    $mysqli->query("set character_set_results='utf8'");
    $mysqli->query("set collation_connection='utf8_general_ci'");


    Ваш запрос

    $mysql->query("INSERT INTO `users` (`login`, `password`, `name`) VALUES('$login', '$password', '$name')") or die ($mysqli->error);
    
    // Не закрываем соединение с БД!
    // $mysql->close(); // Не надо!
    Ответ написан
    2 комментария
  • Как исправить пропажу сертификата сразу после его создания (microsoft exchange)?

    logpol32
    @logpol32 Автор вопроса
    Разобрался.
    Центр сертификации -> Шаблоны сертификатов -> Управление ...Добавить учетку в нужный шаблон.
    Ответ написан
    Комментировать
  • Как исправить скрипт?

    logpol32
    @logpol32 Автор вопроса
    До конца не понял в чем дело, но задачу решил.
    Мой алерт ("заглушка") в Фидл постоянно выполняется. А вот реальный запрос похоже что выполняется 1 раз.
    По крайней мере никаких багов, загрузки сервера я не заметил.
    Ответ написан
    Комментировать
  • Как сделать прокручивающийся контейнер?

    logpol32
    @logpol32 Автор вопроса
    Сделал так, вроде работает.
    .page {
        width: 100vw;
        height: 100vh;
        display: grid;
        grid-template-columns:  auto;
        grid-template-rows: 60px auto;
    }
    
    .page__menu {
        grid-area: 1 / 1 / 1 / 1;
    }
    
    .page__content {
        grid-area: 2 / 1 / 2 / 1;
        overflow: auto;
    }
    Ответ написан
    Комментировать
  • Почему недоступно верхнее меню?

    logpol32
    @logpol32 Автор вопроса
    Проблема была в
    .content-wrapper-position-center {
        width: 100%;
        height: 100%;
        position: fixed;
    ...
    Ответ написан
    Комментировать
  • Когда нужно писать имя таблицы в запросе?

    logpol32
    @logpol32 Автор вопроса
    galaxy, вот ещё пример
    (вспомнил где не работало)

    У каждой таблицы есть колонка с именем id. Остальные имена колонок разные.
    Это работает
    SELECT ProductCode, Name FROM table_one 
    LEFT OUTER JOIN table_two 
    ON  table_two.id = table_one.id_client;


    Это нет
    SELECT ProductCode, Name FROM table_one 
    LEFT OUTER JOIN table_two 
    ON  id = table_one.id_client;

    [Err] 1052 - Column 'id' in on clause is ambiguous

    Достаточно просто совпадения имен любых колонок в структуре таблицы ()?
    То есть смотрите - в ON сравнивается id и id_client. Имена разные.
    Понятно что и с чем связывается.
    И даже если ON id = id ведь понятно, что нужно сравнить id из первой таблицы со id из второй.
    У нас 2 таблицы. И у каждой id. Больше не с чем сравнивать. Два одинаковых поля в таблице быть не может.
    Ответ написан
  • Как сменить иконку канала?

    logpol32
    @logpol32 Автор вопроса
    Иконка сама обновилась через 24 часа.
    Ответ написан
    Комментировать
  • Как войти в телеграм (не приходит смс, суппорт молчит)?

    logpol32
    @logpol32 Автор вопроса
    Прошло 3 месяца - ответа от техподдержки телеграмм нет. Вот так поддержка.

    Поспрашивал людей на форумах, как решить мою проблему.
    Оказывается в телеграмм отключили восстановление по смс. Причем ещё месяц назад.
    А опцию такую в клиенте оставили. Разработчики мирового уровня! Тестирование на высоте...

    Вообщем скачал котограм, там есть восстановление по смс. Сразу пришло смс, вошел в котограм.
    Далее перенес из котограм папку tdata в телеграмм и сразу смог войти.
    Ответ написан
  • Почему Canvas изменяет позицию и размер элементов?

    logpol32
    @logpol32 Автор вопроса
    Очень жаль, что никто так и не смог дать полный ответ на мой вопрос. Вопрос достаточно простой.
    Ответ был дан на stackoverflow. Напишу его сюда.

    Нужно не только указывать размер контейнера (Grid, Canvas как и сказали выше)
    Height="420" Width="790"
    но указывать "размер" окна как
    SizeToContent="WidthAndHeight"
    Грубо говоря, окно будет "оборачивать" контейнер (Grid, Canvas). Тогда не будет глюков, смещений и т.д.

    Указывать размер окна, как в WinForms, фиксированным
    Height="200" Width="400"
    не совсем верно. Ведь в WPF этот размер выделен под всё окно. А оно состоит из заголовка, границ, кнопок, иконки. И эти элементы, в зависимости от пользовательских настроек, могут иметь разный размер. И такое окно может смещать/перекрывать контент. Поэтому окно лучше использовать как "обертку" вашего контента.
    Ответ написан
    Комментировать
  • Создание собственной e-библиотеки из веб ссылок?

    Не знаю по теме ли, но
    В гугл хром есть сохранение (эксперементальные опции) в виде mhtml. В 2 клика выйдет. Ну и текущую страницу.

    Есть такая программа как Offline Explorer.
    Она сохраняет весь сайт локально. Например надо скачать и просмотреть все статьи с одного сайта.
    А там их 100. Запускаем программу - указываем настройки (уровень вложенности, контент) и она скачивает весь сайт.
    Ответ написан
    Комментировать
  • Простой сервис проверки доступности сайта без ввода капчи?

    Часто приходится оценивать доступность собственных проектов. И стандартными сервисами, типа сайтов ping тут не обойтись. Оценивать нужно доступность, работу php, бд и т.д. То есть сайт может и работать (статика), а база накрыться. Или php накрытся, а контент закешироватся на сервере. Вариантов масса.
    Временные интервалы разные. Нужно хранить все результаты.
    Ну, например, чтобы предъявить хостеру, что час сайт висел из за его лагов (от и до). Хостеры бывают разные. (

    Пришлось написать собственную "страницу" на проверяемом сайте. И собственную систему на другом хостинге, которая по крон запускала скрипт проверки. А скрипт и обращался к "странице" на проверяемом сайте и получал ответ - ok или error (упрощенно).

    Но ближе к вопросу.
    Систему не знаю. Но написать такой php скрипт, аля пинг сайта - вполне реально за 20 минут.
    Нужен хостинг с php mysql и cron. И вот бесплатный хостинг с cron найти крайне трудно.
    А платно всё вышеперечисленное есть у всех.

    Вот так это делается для проектов, где важен аптайм и на которые идут постоянные запросы.
    Не сервис конечно, зато сам себе хозяин и ни в чем не ограничен.
    Ответ написан
    Комментировать
  • Стоит ли заморачиватся с тонкими клиетами?

    Заморачиваться не стоит.
    Пользователям поставить самые обычные компы.
    У вас куча софта, в том числе специфического. И всё на один сервер. Грохнется сервер - и всё предприятие встанет. В данном случае. Зачем тонкий клиент написали выше.

    Насчет разрабов - если вдруг работают с портами (протоколы) или железом, то о каких клиентах вообще речь? Даже виртуализация не справляется. Там уже речь пойдет о windows xp, не говоря о железе.

    А так типичные желания.
    Ноуты - мощность малая. Экран небольшой. Или все ок - но цена высокая. Не рационально.

    Неттоп (небольшой 20х20 см). И тут я бы сказал, что все вышесказанное. Но это не главное. Даже можно найти варианты, но охлаждение. Во всех моделях оно плохое. А места нет на нормальное. Заявляю как пользователь данных моделей.
    Итого даже если проц тянет - встроенное видео на нем нет. На приложениях зависимых от графики будут перегревы и сумасшедшие обороты куллера с типичным звуком.

    Моноблок. Относительная миниатюрность - повышенная цена. Усложнен ремонт т.к. надо искать комплектующие. Мощность средняя.

    Итого оптимально обычный комп. Дешево, производительно. При умном подборе комплектующих легко найдете им замену. Без заморочек. Поддерживает всё.
    Ответ написан
    Комментировать
  • Нужна ли математика в информационной безопасности?

    Будущий специалист по ИБ - пишет тебе бывший специалист по ИБ.
    Нет. Не нужна. Максимум базовые знания - не более того.
    Давайте уже жить в реальности. Без этих институтских криптографий, матана и прочей ереси.
    Нам ещё со школы твердили, что нужна, в институте....
    Нас круто на..обманули.

    Теперь по скиллам.
    Посмотри на преподов и их зарплату. Они хорошие математики, физики.
    Как там - идите в бизнес? Делай выводы. Я не сделал - сделай ты.
    Ответ написан
    Комментировать