Ответы пользователя по тегу Unity
  • Почему юнити при импорте портит цвет пиксельарта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Показали бы настроики импорта спраита/текстуры.
    Небось банально Mip Map генерация включена.

    P.S.
    для тех кому лень читать коментарии . Банально все, дело оказалось в сжатии текстуры при импорте )
    Ответ написан
    6 комментариев
  • Куда пропадает рабочее пространство Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Как и у обычного компонента камеры, у камеры в Scene View - есть границы ближе и дальше которой не рисует.(в обычной камере Near и Far )
    Так вот вы в плоский предмет прям уткнулись.Пропало отображение только в SceneView. Сами объекты по прежнему все на месте.Так что вы не могли таким вот образом "запороть" сцену.
    Ответ написан
  • Существуют ли AR SDK для Windows Phone 8.1/10?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://developer.vuforia.com/downloads/sdk
    Старина vuforia как раз под AR и умеет под виндофоны вроде как. и для юнити вроде часто её используют. странно что не наткнулись пока искали.
    Ответ написан
  • Как спрятать/скрыть музыкальный фаил от пользователя?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    .nomedia некоторые плееры банально игнорировать умеют.(стоит к примеру сканировать ВСЁ и галочка игнорировать, а потом жалуются)
    Обычно фаилы не отображаются, вы их в StreamingAssets или в Resources сложили? Если да прочитайте и переделайте на AssetBundles.
    Хотя даже в вышеописанном случае фаилы внутри apk лежат.
    Значит возможно звуки вы отдельно загружаете?
    Если ни то ни другое. выясняйте у пользователя что у него за плееры такие и что за прошивка на телефоне? рут?)
    Ответ написан
    Комментировать
  • Как отобразить изменение прогресса воспроизведения клипа?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Используте небось как-то не верно. Проставляете небось значение, вместо просто считать. или на Update запускаете корунтину за корунтиной))
    Не должно быть никаких проблем просто взять текушее время проигрывания из айдиосорса.проверив играет ли он вообще сейчас.
    Ответ написан
  • Как перемотать воспроизведение аудиоклипа в сурсе?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/ScriptReference/AudioSour...
    но там предупреждение про компреснутые
    и есть вот такой, по сэмплам.
    https://docs.unity3d.com/ScriptReference/AudioSour...
    Ответ написан
  • Как в UI Text менять цвет словам?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/Manual/StyledText.html
    оставлю это здесь. чтоб могли поглядеть что там еще кроме цвета есть.))
    Ответ написан
    Комментировать
  • Как реализовать ресурс, который будет восполняться с течением времени?

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

    Если игра офлаин - то тут чтоб между выключениями/сворачиванием игры продолжало копить энергию - вам бы запомнить куда-нибудь (в PlayerPrefs к примеру или просто в фаилик) - время последнего прибавления/подсчета энергии.
    В момент следующего подсчета текущего количества энергии посмотреть сколько прошло времени с прошлого просчета (когда мы запомнили время) - и вуаля..добавить энергии за прошедшие N минут/часов/дней
    Если энергия критична и надо чтоб не читерили к сохраняемому времени добавить соль, хеши, меши и тп) чтоб по крайней мере нельзя было открыть фаилик и подменить время. а вот от перевода времени на устроистве - большой вопрос как защитится). разве что при запомненном времени - позволять потом прибавлять энегрию в минус. наказывая читеров)
    скажем перевел он на год вперед. а потом спустя день отмотал на год назад - и вы у него энергию в минус за год отняли))
    Ответ написан
    Комментировать
  • Как удалить GameObject и при этом удалить Missing Collider из Списка?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    И вправду много написали и понять не просто.
    Но как мне показалось, вам нужно сделать определение..можно в это место ставить объект или нет.
    и вы решили сделать это через слои и триггеры.
    Суть проблемы если я правильно понял в том, что когда вы удаляете здание из какого-то другого скрипта, у вас не срабатывает
    void OnTriggerExit(Collider other)
    поэтому ни с булевскими переменными, ни со списком коллайдеров - варианты не работают.
    Как вариант решения костылем, чтоб ничего не менять почти - можно попробовать почистить список (предположив что после удаления ничего не касается превью объект), а после вкл/выкл объект или еще как то..как будто заново проверить на касание с остальными коллайдерами.
    к примеру запустить OnTriggerStay и проверить кого он касается сейчас, а не только на входе и выходе.
    Ответ написан
    2 комментария
  • Как сделать плавающую камеру в 2d платформере на unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Вы про картинку/рендер? искажения и изменение цвета ? тогда читайте про Post-processing и ImageEffect и как их сделать в Unity (какая там у вас 5.6 или постарее что-то). даже в стандартный ассетах есть набор эффектов примеров.
    https://docs.unity3d.com/Manual/PostProcessingOver...
    https://docs.unity3d.com/550/Documentation/Manual/...

    или вы про покачивание камеры? тогда скрипт или анимация зацикленная на объекте камеры.
    Ответ написан
    Комментировать
  • Масштабирование элементов без искажений в Unity UI?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    воу. а для кого сделали 9SliceSprites

    "Составная панель из пяти элементов (четыре стороны обводки и заливка). Жуткий костыль."
    тот самый жуткий костыль, только не жуткий, а общепринятый.
    Ответ написан
    4 комментария
  • Unity зависает игра на android во время загрузки сцены. Какие могут быть причины?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    ну для начала вам бы глянуть лог с андроидного деваиса.
    android sdk, log, monitor - гуглите, если не в курсе как этот лог посмотреть.

    Как вариант у вас запускается эта сцена на андроид деваисе с малым количеством оперативной памяти. и игру просто выкидывает/выгружает.

    но вообще без лога и подсказок каких-то - это все гадание по кофейной гуще.

    И вы уверены что проблема именно в ПЕРЕХОДЕ?.
    Если собрать только сцену MAIN и запустить на устроистве, тоже сцена не грузится?
    Ответ написан
  • Как доработать скрипт, так что бы уровень звука был одинаков на всех сценах?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Все же давайте отдельный совет , отдельный ответом дам.
    У вас сейчас настроики звука сильно связанны с самим компонентом воспроизведения.
    По хорошему у вас есть статическая или глобальная (или еще как хотите) структура данных для настроек.
    Аля какой-нибудь класс где есть "громкость", "доп эффекты", "выбранный скин" и тп. просто данные.
    Меню настроек будет позволять эти данные изменить и сохранить.
    А вот скрипт занимающийся воспроизведением - обратиться к этим данным и использует их.

    к примеру если назвать класс с настройками GlobalSettings))
    public class GlobalSettings
    {
     public static float musicVolume;
    }

    то из него берем громкость для скрипта где управляем музыкой
    public void Update()
        {
            AudioListener.volume = GlobalSettings.musicVolume;
            
        }

    а вот изменение положение слайдера - будет менять нашу новую глобальную переменную)
    float newVolume = //тут как нибудь получаете новое значение 
    // к примеру из эвента  ChangeValue() в слайдере..или еще как 
    GlobalSettings.musicVolume = newVolume ;


    надеюсь я донес общий принцип и смысл того , как я бы сделал настройки
    (код писал так из головы, возможны опечатки и неточности, но тут смысл и вариант решения доносил, а не код за вас писал)
    Ответ написан
    3 комментария
  • Как использовать переменную из одного скрипта в другом?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если сцены не загружены обе в текущий момент - то вы не можете постучаться из одной в другую.
    Это все равно что пробовать найти кровать на кухне. (кухня, спальня - разные комнаты/сцены)
    Вам или делать это статичным классом/переменной, или не уничтожаемый объект , который будет оставаться в сцене при загрузке новой.
    Или все же подгрузить аддитивно обе сцены..чтоб можно было искать в обоих)

    Используя аналогию выше, вы построили бы не кухню или спальню. а дом из кухни и спальни, а там уже искали бы свою кровать в них)
    Ответ написан
    Комментировать
  • Как принято делать фабрику предметов?

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

    Предложил бы отдельно хранить этакие "Ресурсы/Ассеты для оружия".
    Какой-нибудь список где по айдишнику оружия, вы можете достать спраит, описание текстовое, модель..что угодно.
    Методы для работы со списком возможно для удобства и всей этой инкапсуляции и тд.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Вы уж извините, но описание как в World of Warships - так себе пояснение. или видео искать или вообще качать игру, чтоб посмотреть как камера вращается. а вам "так же как там" только без пары режимов.(слава богу по коду вроде понятно что вы хотите)

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

    тогда предложил бы просто использовать сферические координаты
    relativePosition = SphericalToCartesian(longitude, latitude, orbitRadius);
    transform.position = target.transform.position + relativePosition;
    
    private Vector3 SphericalToCartesian(float longitude, float latitude, float radius)
        {
            float x = radius * Mathf.Sin(latitude) * Mathf.Cos(longitude);
            float y = radius * Mathf.Cos(latitude);
            float z = radius * Mathf.Sin(latitude) * Mathf.Sin(longitude);
            return new Vector3(x, y, z);
        }


    По сути у вас есть долгота и широта (как на глобусе) и радиус сферы.
    Вычисляете координаты на сфере и плюсуете их к позиции target.

    Менять широту, долготу и радиус на основе инпута - тут я вижу вы в курсе как.

    ну и так к слову- скрипт тут на пару десятков строк, и мало связанный с другим функционалом - даже весь переписав - капитальным ремонтом это сложно назвать
    Ответ написан
  • Как сделать случайную генерацию объектов по координатам заданным в массиве unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    В общем то проще простого
    - как создать объекты я так понимаю вы знаете.
    - как создать список координат тоже

    Код не точный , а просто показать принцип
    - цилк - по количеству объектов , которые хотим сгенерировать.
    - выбирает рандомную позицию в списке
    - генерируем в этой позиции объект
    - удаляем эту позицию из списка (в этом месте больше уже не сгенерируем, и в следующих раз выбирать будет из меньшего числа доступных позиций)
    for(i=0;i<NeededNumdersOfObject;i++)
    {
         int randomNumber = RandomRange(0,listOfTransforms.Count);
         Instantiate(Object,listOfTransforms[randomNumber ].position,....);
         listOfTransforms.RemoveAt(randomNumber)
    }


    только проверьте что точек размещения в списке больше, чем число объектов которые хотите сгенерировать.
    и еще можно делать копию списка , так как после удаления из него элементов в процессе генерации - повторно его уже не используешь.
    Ответ написан
    4 комментария
  • Как преобразовать JSONObject в string на Unity с socket.io?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/ScriptReference/JsonUtili...

    сделайте сначала json по формату. передайте с сервера именно Json
    {"xCoords":"player.x","yCoords":"player.y","zCoords":"player.z"} - к примеру, если хотите строки передать.
    тут можете проверить что все правильно парсится.
    ну а дальше уже проще - работайте с джисоном как в документации сказанно.
    Ответ написан
  • Как перенести материал из blender в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    в модель можно вшить материал, и от подтянется отчасти при импорте модели.
    Но скорее всего вам придется импортировать отдельно текстуру, создать материал в юнити, выбрать/написать шейдер и выставить параметры в материале в Юнити.
    На практике сколь не не было моделей с вшитыми материалами, для работы удобнее сделать свой материал и настроить в Юнити (в основном проблема с подменой модели, ссылкой на префаб и заменой шейдеров под запекание света или под производительность и тп)
    как то так)
    Ответ написан