Ответы пользователя по тегу Unity
  • Как работать с модульными ассетами в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Refractor 2004, еще есть "привязка по вершинам" при зажатой клавише V . можно один угол к другому "пристыковать") правда это больше для кубиков..но все же.
    Vertex Snap если что в конце документации про то как позиционировать объекты)
    видать на англ не пробовали искать даже.
    https://docs.unity3d.com/Manual/PositioningGameObj...
    Ответ написан
    Комментировать
  • Хочу создать игру похожую на Happy Glass, как создать редактор, как в игре на Unity5?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    хо хо. с такими хотелками.

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

    при текущем уровне качества вопроса - любая из этих тем остановит вас на долго)
    или мы не так вас поняли и вы все это можете и вам нужно конкретно какой-то момент с готовым почти редактором уровней?
    но уж очень похоже, что вы думаете, что все эти компоненты есть в бесплатном и готовом виде. И применить их можно проще простого)) нет это не так.
    Ответ написан
    3 комментария
  • Почему не срабатывает условие Quaternion.Slerp?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    думал вынести в ответ или нет.
    но кватернионы никто так не задает))
    в этом и ошибка.
    transform.rotation = кватернион тут все хорошо.
    а вот требуемый поворот лучше все же задать иначе.
    к примеру - добавить к текущему повороту 90 градусов. (надеюсь очевидно что задавать цель поворота надо единожды, а не каждый апдеит)
    Quaternion targetRotation = transform.rotation * Quaternion.Euler(0, 90, 0);

    или в вашем случае просто через Quaternion.Euler задать требуемый поворот. но учесть что это будет локальный поворот.
    вообще про кватернионы бы вам почитать. что там и порядок умножения важен.
    и что они умножаются, а не суммируются.
    почитайте про них статьи на том же хабре. там была парочка поясняющих про тангаж, рысканье и тп. и аналогии с кватернионами чтоб хоть как то их понять))
    Ответ написан
    3 комментария
  • Что лучше: стена с множеством окон или множество блоков с одним окном в каждом?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    а стена разрушаемая/динамическая ?
    а коллизии считать надо и не хотите ручками расставлять?

    лучше с точки зрения удобства геимдизайнера/левелдизайнера? или с точки зрения производительности?

    Статикой если будет и из одного материала - то хоть из кучи кусочков, хоть из одного.
    Из блоков удобнее делать разные формы.
    Плюс если какой то Occlusion - то по блокам сможет частично не рисовать то, что в кадр не попадает.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/Manual/UnityIAPGoogleConf...
    для начала. вы в консоли на гугл плей сделали свое приложение? консоль настроили? сборку собрали? внутреннее тестирование начали??))

    а то есть подозрение что возможно вы только Юнити часть настроили.

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

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

    удачи разобраться с этим всем))
    Ответ написан
  • Как настроить порядок отображения объектов на сцене?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    у вас тут не 2D получается, а больше похоже на 2.5D или изометрию)
    можете попробовать нагуглить как это там решается.
    обычно что-то в духе скрипта, которой в зависимости от дальности (а в вашем случае чем выше) изменяют как раз OrderLayer

    Условно. мечь, голова, одежда и тд. под них резирвируем 10 "слоев"))
    и вот если Y = 0., то слои у персонажа будут (1,2,3..)
    если же он стал в другой ряд и Y = 1 то слои персонажа становятся (11,12,13...)

    но это так один из вариантов как избежать наслоения.
    или использовать не спраиты, а честно в 3D расставлять Quad или Plane по Z оси))
    Ответ написан
    1 комментарий
  • Почему Resources.Load() выдает null?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    pistolSprite =  Resources.Load <Sprite> (pistolPath);	
    //или если несколько внутри то 
    Sprite[] pistolSprites =  Resources.Load <Sprite> (pistolPath);


    так должно работать. в вашем варианте возможно находило именно текстуру, а потом пробовало в спраит преобразовать из за указания typeof(Sprite)
    Ответ написан
    2 комментария
  • Как в Unity сделать словарь как в Pyhton?

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

    что то в духе
    >>> foo = {42: 'aaa', 2.78: 'bbb', True: 'ccc'}
    >>> foo
    {42: 'aaa', 2.78: 'bbb', True: 'ccc'}


    в C# словарике провернуть будет малость неадекватно))
    вот если что примерчик)
    https://stackoverflow.com/questions/4105361/how-do...

    а в остальном все тоже самое..список "Ключ-Значение", смотрите хоть официальную документации, хоть пример в других ответах))
    Ответ написан
    Комментировать
  • Как сделать корректный переход объекта между несколькими buoyancy effector 2d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    погодите а что не так??
    тяжелые тонут, а легкие плавают на границе жидкости.
    когда ставите density (плотность) жидкости ноль - то все объекты в ней тонут))

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

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    тут наверное важно не путать "паттерн проектирования" и "концепцию архитектуры"

    их правда называют малость иначе))
    вот из той же википедии
    "На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы."
    всякие MVC и иже с ними.

    а теперь касательно проекта на Unity - тут к сожалению нет. вот просто нет универсальной пилюли.
    проекты очень разные. и Unity довольно навязчива со своим компонентным подходом диктует условия.

    а что если сетевой уровень еще.
    а что если хотим ECS новый и Jobs использовать.

    Не бывает супер удачно всем подходящей) делаем. смотрим что не так. исправляем и переделываем. в следующий раз с опытом выйдет лучше.
    Еще вариант поглядеть чужое. разобрать досканально, понять почему тут так сделали.
    Пару чужих проектов - и можно свою "идеальную" попробовать навернуть))
    Ответ написан
    Комментировать
  • Почему данный код не работает?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    попробую пояснить как то попроще что ли))

    Вот вы запустили короутину в строке
    StartCoroutine(ExecuteAfterTime());
    оно тут же начнет её выполнять, и выполнит все вызовы внутри короутины пока не наткнется на какое нибудь "подождать", в вашем случае
    yield return new WaitForSeconds(1);

    наткнулось -> вернулось тут же в основной поток и продолжило выполнять
    temp.transform.position = pointss[i]; и далее цикл.

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

    void ChangePos(List<Vector2> pointss, GameObject temp)
        {
            for (int i=0; i<pointss.Count; i++)
            {
                StartCoroutine(ExecuteAfterTime());
               Debug.Log("from FOR _"+i.ToString());
                temp.transform.position = pointss[i];
            }
        }
    
        IEnumerator ExecuteAfterTime()
        {
            yield return new WaitForSeconds(1);
           Debug.Log("Arter 1 second");
        }


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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    смотрите какое тут дело.
    особо защиты нет( кто-то купил ассет ваш. скачал. и может раздавать направо и налево.

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

    Но, в 95 процентах случаев - если этот ассет достался безымянному Васе - он выложил в стор - и НИЧЕГО) нет у него прибыли какой либо существенной.

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

    такие вот дела)) хороший и востребованный ассет - покупают. а купленным не все охотно делятся бесплатно))
    Ответ написан
    Комментировать
  • При перезапуск сцены код не работает, как исправить?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    как как)) в консоли ошибки посмотрите..вдруг что есть
    а еще есть вероятность ,что какой-то DontDEstroy объект создаете с ссылкой на Instance, а потом пересоздали второй раз, а ссылка не меняется..

    плюс не ясно что у вас за персонаж, есть ли сетевой уровень)) что за управление "с помощью Joystick" )) ничего вообще не ясно))
    Ответ написан
    6 комментариев
  • Почему в Unity, объекты "спавнится" выше другого объекта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Spawn[i].transform.localScale.y + i
    вот как минимум этот момент вам не зря выделили..
    вы на скэил(масштаб) УМНОЖАТЬ должны, как минимум. а не плюсовать его.

    вы получается в глобальных мировых координатах, берете масштаб, как расстояние.
    вот и получаете, что у вас спавнятся объекты на N + i выше)) в мировых координатах.

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

    ну и напоследок. заранее.
    у вас смотрю на дереве коллайдер. и на создаваемых ресурсах чую тоже есть коллайдер))
    у вас один коллайдер из другого будет выталкиваться..если не отключите на дереве.
    Destroy срабатывает не моментально и успеет физику посчитать))
    Ответ написан
  • Как Unity сохранить объект после остановки?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    можете в редакторе перетащить их в Project.
    таким образом получите из объекта префаб..можно будет потом его использовать.

    но вообще Play (рантаим)по большей части работает как Песочница. поработала и сбросилась в исходное состояние.
    Ответ написан
    Комментировать
  • Проблема с leaderboard в PlayMaker(GooglePlay) в Unity, как ее исправить?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/ScriptReference/Social.html
    дайте попробую угадать. вы пробуете это не на iOS...???
    прочитайте. Social в юнити для GameCenter только. если надо ПК или андроид - ищите плагины.
    Ответ написан
  • Как вы реализуете свайпы в unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    если вы все так делали то ничего удивительного..
    общий принцип жеста "сваип"

    - запомнить стартовую позицию (клика/касания тут неважно) )плюс возможно таймер и индекс пальца/тача если нужен мультитач
    - считать смещение пока не отпустили
    - в момент когда отпустили - посчитать смещение. (возможно проверить время, чтоб за сваип не считало если "вел в бок пять секунд")
    - посчитанное смещение. в зависимости от на правления засчитать за нужный "сваип"

    а не каждый кадр как у вас считать))
    У тача есть фазы. старт. движение. отмена. конец...увидите в документации.
    как собственно у мышки есть -НАЖАТА. ЗАЖАТА. ОТПУЩЕНА ))
    https://docs.unity3d.com/ScriptReference/Touch-pha...
    https://docs.unity3d.com/ScriptReference/Input.Get...
    и тд
    Ответ написан
    Комментировать
  • Как в unity реализуются сетевые игры?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    https://docs.unity3d.com/Manual/UNet.html
    вы про этот uNet ??
    там и общие принципы описывают и лоу левел апи есть для тех кому требуется самому все написать и контролировать.

    Users building network infrastructure or advanced multiplayer games. These users should start with the NetworkTransport API.
    Ответ написан
    Комментировать
  • Как запретить редактору вызывать "readonly static" во время редактирования?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    посмотрите примеры плагинов локализации. в том же ассет сторе.
    это паршивый вариант кешировать - сохраняя хардкодом в статик поля.

    обычно у плагина локализации есть отдельно фаил ресурсов. где все локализации.
    нужную на старте вытащили. в оперативку/сцену запихнули и используете.

    это уже само по себе кеширование. от того что вы все это в переменные readonly static понапихаете лучше не станет))
    Ответ написан
  • Как сделать ДВА прыжка в платформере на Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    стандартный платформ контhоллер из стандарт ассетов..содержит в себе пример и туториалов куча.

    делается проверка на "касание земли". прыжок можно сделать только если после совершения прыжка было "касание земли. и от сюда уже пляшет дабл джамп и так далее..

    https://unity3d.com/ru/learn/tutorials/topics/2d-g...
    вот к примеру. тут по направлению вроде определяют..но суть все равно во флаге grounded
    Ответ написан
    2 комментария