• Двойная тень от объекта??

    WNeZRoS
    @WNeZRoS
    Ракурс не очень понятен. Предположу что белая дорожка это отдельный объект, т.е. всё примерно так:
    ulthdkvy1mj9wy0wxmjb3w607hw.png

    На моём скриншоте тень дублируется потому что у среднего куба выключено Cast Shadows. На месте второй тени от сферы будет тень от куба, если её включить.
    Ответ написан
    2 комментария
  • Время сервера UTC и работа с ним в Unity?

    shai_hulud
    @shai_hulud
    1) Не использовать реальное время, использовать относительное время от какой либо точки: для мультиплеера время создания проекта, для синглы время создания аккаунта. Все временные процессы в относительном времени, можно будет гарантировать, что относительное время всегда растёт и не будет рассинхронов по времени.
    2) Лучше брать со своего.
    3) прибавлять Time.deltaTime каждый Update и только положительные значения.

    Бонусы относительного времени в том, что когда игрок заходит можно корректировать рассинхрон времени:
    а) игрок опережал сервер на 5 секунд, зашел через день после оффлайн, прибавляем ему = 1д. - 5 сек.
    а) игрок отставал на 1 минуту, зашел через 5 секунд после оффлайна, прибавляем ему = 1мин. + 5сек.

    ну и никаких проблем с сериализацией, хранением, часовыми поясами итд. относительное время может быть простым числом (тиков) или TimeSpan.
    Ответ написан
    4 комментария
  • Property и Fields?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Да, при создании автосвойства создаётся скрытая переменная - данные должны где-то храниться.

    Эта переменная создаётся с хитрым именем (с запрещёнными в c# символами в имени переменной). Можно увидеть это таким способом:
    class TestClass
    {
        private int _a;
        public int A
        {
            get { return _a; }
            set { _a = value; }
        }
    
        public int B { get; set; }
    }
    
    var testClass = typeof(TestClass);
    var fields = testClass.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
    foreach (var fieldInfo in fields)
    {
        Console.WriteLine(fieldInfo.Name);
    }
    // результат:
    // _a
    // <B>k__BackingField
    Ответ написан
    4 комментария
  • Ссылки на объекты (типа менеджер), почему он всё сразу грузит в память?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Такова механика. Instantiate - это не загрузка, а создании копии, поэтому оригинал должен быть загружен к этому моменту. Если нужно грузить именно в нужный момент, используйте Resource.Load(path)
    Ответ написан
    2 комментария
  • Ссылки на объекты (типа менеджер), почему он всё сразу грузит в память?

    BasmanovDaniil
    @BasmanovDaniil
    Геймдизайнер-телепат
    При открытии сцены и загрузке из ресурсов Юнити ищет все связанные объекты и загружает их в память, просто так хранить ссылки без загрузки нельзя, можно только хранить самодельные идентификаторы и грузить по ним объекты из ресурсов когда надо. Ещё можете попробовать Addressable Asset System, этот пакет сыроват немного, но может помочь.
    Ответ написан
    1 комментарий
  • AssetBundle только для удаленного использования?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    для хранения отдельно текстур, моделей и прочих ресурсов сделанны ассет бандлы.

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

    и положить себе локально в стриминг ассеты и считать нужный бандл - не костыль. а как раз вариант менеджмента ресурсов.

    А по вашему описанному кеису - есть unitypackage . (так собственно в ассет сторе распространяются плагины и ассеты)). как раз один такой архив с метафаилами, который можно подтянуть себе в проект почти безболезненное (если не косячить с одинаковыми именами и тд)
    Ответ написан
    1 комментарий