Задать вопрос
  • Какие реальные показатели автономности макбука?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    В общем автономность порядка 3,5 часов. От доп батареи пока отказался, так как буду покупать видимо нормальный аппарат, этот морально устарел )
    Ответ написан
    Комментировать
  • Как в библиотеке react-paginate заблокировать кнопку далее при 0 массиве данных?

    Kentavr16
    @Kentavr16
    long cold winter
    используй pageCount = 1, c нулем значений. Также логично вообще не отображать пагинацию если нет элементов для отображения.
    Ответ написан
  • Как автоматизировать регулярный клик на кнопку?

    Kentavr16
    @Kentavr16
    long cold winter
    Использовать инструменты автоматизации.
    Вот популярное решение с использованием JavaScript.
    Ответ написан
    Комментировать
  • Ошибки в react-router?

    Kentavr16
    @Kentavr16
    long cold winter
    Просто оберни все приложение в роутер. Ты не используешь контекст, а навлинк использует.
    Ответ написан
  • Как в react работать с большим количеством данных?

    Kentavr16
    @Kentavr16
    long cold winter
    Путей решений большое количество, и они зависят от твоих хотелок.
    Вариант а - с кульбитами, но я бы так сделал. Пишешь небольшой бекенд на экспрессе для своего приложения. На беке с помощью cron например раз в день/час/несколько минут делаешь запрос на нужное апи, записываешь в своей бд ответ. Вопрос с лимитом запросов решен. далее делаем пагинацию на своем сервере (очень простое действие) и отправляешь пользователю человеческий ответ по АПИ, который будет соответствовать всем твоим запросам и нуждам. На фронте остается допилить простое СПА без извращений и сложностей.
    Вариант б - сохраняешь ответ на клиенте, обновляешь кеш раз за n-ное время, как предложено выше. В таком случае проще всего действительно использовать локалстор для хранения ответа по АПИ. Если хочется более продвинутой работы, обрати внимание на indexedDB -есть несколько интересных адаптеров для реакта, которые упрощают работу.
    Вопрос с сохранением данных при переходе на другую страницу решается просто (я догадываюсь что под другой страницей ты подразумеваешь роутинг в react SPA). Это либо хранение состояния на верхнем уровне приложения, либо стейт менеджер. Внимание - стейт-менеджер только упрощает(!!!) обращение со сложным стейтом в относительно больших приложениях. Это не панацея, по факту он делает то же самое что и обычный хук стейта. Тебе скорее всего не принципиально, но при желании пришить условный zustand можно. Это вкусовщина.
    Можно вообще написать кастомный хук для работы с локалстором/индекседДБ и юзать на каждой странице, считывая при заходе на каждую страницу данные и одновременно проверяя их "свежесть". Тогда стейт менеджеры точно не нужны от слова совсем.
    Ответ написан
    1 комментарий
  • Как применить эффект на все изображения?

    Kentavr16
    @Kentavr16
    long cold winter
    вставь вот это
    const Images = document.querySelectorAll('.image')
     Images.forEach(image=>
     new ImageHover(image)
     )

    вместо своего блока с document.querySelector в конце скрипта
    То есть вместо
    // The image element
        const theImage = document.querySelector('.image')
        new ImageHover(theImage);
    Ответ написан
    2 комментария
  • Как установить права на работу с локальным диском?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    Все просто - использовать chown на текущего пользователя
    Ответ написан
    Комментировать
  • Как решить проблему у Sidebar на React.js?

    Kentavr16
    @Kentavr16
    long cold winter
    как вариант можно сделать
    при использовании фиксед или абсолют ты вырываешь элемент из потока документа. Место под него не сохраняется, потому и проблемы при настройке отзывчивости. В моем варианте я создал контейнер для сайдбара, который "резервирует" место в документе. Плюс использовал относительные единицы ширины/высоты для облегчения рассчетов.
    Ответ написан
    Комментировать
  • Почему в клиентском компоненте задержка в отрисовке стилей?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    Как обычно бывает, нужно внимательно читать доку. Ответ крылся в документации ант дизайна, видимо кешируют в контекст свои стили.
    Ответ написан
    Комментировать
  • NullReferenceException: Object reference not set to an instance of an object?

    Kentavr16
    @Kentavr16
    long cold winter
    textMesh = GetComponent<TextMeshProUGUI>();
    Ответ написан
  • Как исправить ошибку зависимостей библиотеки BCrypt при установке приложения на CPanel?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    Помогла полная переустановка приложения с bcrypt 5.1.0 вместо 5.1.1
    Ответ написан
    Комментировать
  • Как сделать смену обьекта при приближении?

    Kentavr16
    @Kentavr16
    long cold winter
    using UnityEngine;
    
    public class TransparencyController : MonoBehaviour
    {
        public Transform playerTransform; // Ссылка на трансформ игрока
        public Transform objectTransform; // Ссылка на трансформ объекта, прозрачность которого мы хотим контролировать
    
        public float maxDistance = 10f; // Максимальное расстояние, при котором объект полностью прозрачен
        public float minDistance = 2f; // Минимальное расстояние, при котором объект полностью непрозрачен
    
        private SpriteRenderer objectRenderer; // Ссылка на компонент SpriteRenderer объекта
    
        void Start()
        {
            // Получаем компонент SpriteRenderer объекта
            objectRenderer = objectTransform.GetComponent<SpriteRenderer>();
        }
    
        void Update()
        {
            // Рассчитываем вектор от игрока к объекту и нормализуем его
            Vector3 playerToObject = objectTransform.position - playerTransform.position;
            float distance = playerToObject.magnitude;
            float normalizedDistance = Mathf.Clamp01((distance - minDistance) / (maxDistance - minDistance));
    
            // Изменяем прозрачность объекта в зависимости от нормализованного расстояния
            Color objectColor = objectRenderer.color;
            objectColor.a = 1f - normalizedDistance; // Инвертируем значение прозрачности
            objectRenderer.color = objectColor;
        }
    }


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

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

    П.С. - при ответе использовал чатГПТ. Проблема в том что не зная основ юнити невозможно даже четко сделать запрос к ИИ. Так что удачи в обучении.
    Скрипт проверен и рабочий.
    Ответ написан
    Комментировать
  • Какие минимальные характеристики ноутбука для работы в Unity?

    Kentavr16
    @Kentavr16
    long cold winter
    Для нетребовательных проектов:
    1) вполне подойдет и 5, при возможности на вырост можно смотреть старшие модели.
    2) современные встройки подойдут, если не планируешь работать со сложным 3Д, рендером его в катсцены и т.д. Если сомневаешься, предпочтительна дискретки. Для простых проектов встройки хватит.
    3) для простого проекта 16 за глаза. Оперативная память не станет узким местом проекта. Чисто для удобства работы я бы лучше взял быстрые 16 чем посредстсвенные 32.
    Ответ написан
    1 комментарий
  • Как в результат substring вывести только число?

    Kentavr16
    @Kentavr16
    long cold winter
    let htmlString =  '<a href="https://site/ua-search/page-4?search=футболка">4</a>';
    let content = htmlString.replace(/<a.*?>(.*?)<\/a>/g, "$1");
    console.log(content);//4


    ЧатГПТ услужливо написал регулярку.
    Ответ написан
    1 комментарий
  • Персонаж не прыгает в unity3D! Почему?

    Kentavr16
    @Kentavr16
    long cold winter
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PlayerController : MonoBehaviour
    
    {
        public float speed = 10f;
        public CharacterController controller;
        public Transform groundcheck;
        public float gravity;
        public LayerMask groundMask;
        Vector3 velocity;
        public bool isgrounded;
        public float groundDistance = 0.4f;
        public float jumpHeight = 3f;
    
        void Update()
        {
            isgrounded = Physics.CheckSphere(groundcheck.position, groundDistance, groundMask);
            if (isgrounded && velocity.y < 0)
            {
                velocity.y = -2f;
            }
    
            float x = Input.GetAxis("Horizontal");
            float z = Input.GetAxis("Vertical");
    
            Vector3 move = transform.right * x + transform.forward * z;
            controller.Move(move * speed * Time.deltaTime);
    
            velocity.y += gravity * Time.deltaTime;
            controller.Move(velocity * Time.deltaTime);
    
            if (Input.GetButtonDown("Jump") && isgrounded)
            {
                velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
            }
    
        }
    }

    что я и говорил - ты переписывал велосити. В этой вариации гравитаця - отрицательная величина. Все работает.
    Ответ написан
  • Как в Unity указать обьект переменной из другого скрипта в инспекторе из кода?

    Kentavr16
    @Kentavr16
    long cold winter
    уважаемый Киану, хочу пожелать вам удачи в последующих съемках и спасибо за пожелания. По делу - если мне нужно получить ссылку на игровой объект в процедурно генерируемом экземпляре префаба, я создаю публичное поле в родителе(!) который генерирует префаб, и уже при генерации префаба передаю нужные данные. Вот наглядный пример -
    //ссылка на игровой обьект
     public GameObject DigUiPanel;
    **** остальной код***
    //генерирую экземпляр 
     GameObject Layer = Instantiate(LayerPrefab, LayersStartPos.transform.position + layerCreatingDirection * i * offset, Quaternion.identity);
     Layer.transform.rotation = Quaternion.Euler(0, 0, 45);
     DigUI DigUIScript = Layer.GetComponentInChildren<DigUI>();
    //задаю созданному экземпляру ссылку на реальный игровой объект
     DigUIScript.DigUIPanel = DigUiPanel;

    Надеюсь что я правильно понял суть твоего вопроса.
    П.С. - главное помнить что Instantiate возвращает ссылку на новосозданный объект, который ты можешь свободно менять.
    Ответ написан
    1 комментарий
  • Почему не удается навесить слушатель на клик?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    Проблема была в том, что я с помощью команды Debug.unityLogger.logEnabled = true; в одном из скриптов глушил спам от Adaptive Performance модуля. Убрал строку - лог работает. Видимо эта команда отсеивает некоторые логи, такие как вызываемые в рантайме. Нужно читать доки.
    Ответ написан
    Комментировать
  • Как создать полностью черную сцену в юнити 3д?

    Kentavr16
    @Kentavr16 Автор вопроса
    long cold winter
    Все дело в запеченном глобальном освещении. в window->rendering->lighting снять галочку с baked global illumination и нажать generate lighting.
    Ответ написан
    Комментировать
  • Как "правильно" моделировать мелкие детали на объектах?

    Kentavr16
    @Kentavr16
    long cold winter
    По логике следует избегать ненужных полигонов - меньше нагрузка на ПК игрока. Во взятом тобой примере нет большой разницы, но если таких объектов на сцене сотни, то можно получить ощутимую разницу в нагрузке. Вот если твоя бочка должна распадаться при взрыве к примеру, то ее деление оправдано. Но просто так добавлять грани - зачем?
    Ответ написан
    Комментировать
  • Почему не навешиваются стили на root?

    Kentavr16
    @Kentavr16
    long cold winter
    Можешь стилизовать index.html - инлайново или в теге скрипт должно сработать. Но стоит понимать что корневой компонент приложения - это не про стили и отображение. Это про точку рендеринга, скорее логику. Потому советую его вообще не трогать. Точно так же ширину в сто процентов можно задать основному компоненту, в который ты собираешь приложение (App)
    Ответ написан