• Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    ой, да всё в порядке) Арк Тарусов:
    вы и вправду если что вот так просто подсказать по мелочи - обращайтесь
    Одно удовольствие пробовать подсказать людям, которые готовы пойти почитать и вообще нормально соображают)
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    лишь чуток добавлю что #if UNITY_ANDROID и подобное зовется директивами. и это не совсем проверка.
    не знаю важно или нет или уже прочитали, но это по сути "знак" компилятору - компилировать этот кусок кода или нет).

    "if (Application.platform == RuntimePlatform.Android)
    в которой явно прописано что данный код работает только если запускается на андроид."

    ну а про эту строчку просто забыл) простите) очевидным казалось что неё надо если нужно чтоб везде работало))

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

    только свои список . складываем/удаляем элементы при загрузках/переходах.
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    Арк Тарусов: еще и сюда в комент повторю, что если вы про quit() то прочитайте справку. а само нажатие клавишь - отслеживается везде и всегда нормально.

    ну и не делайте это в void OnGUI(). ОН вызывается куда чаще чем вам надо это нажатие)

    void OnGUI() - это для отрисовки интерфеиса и нажатий на интерфеис.
    Input принято проверять в Update().
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    https://docs.unity3d.com/ScriptReference/Applicati...

    не может не срабатывать, ну или вы запускаете в эдиторе или веб билде не почитав документацию, почему-то.
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    ну с знаете, многовато вы требуете из простого вопроса как сделать кнопку -> как реализовать кучу всего.

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

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

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

    а так то - смиритесь((
  • Почему некоторые шрифты искажаются на внешнем мониторе?

    MrMureno
    @MrMureno
    ну тогда вам точно надо проверить метод - "заставить видеть не как телевизор". который про цветовую схему и тд.) многим помогает
    macosworld.ru/ycbcr-rgb-macbook-external-monitor-p...
  • Почему некоторые шрифты искажаются на внешнем мониторе?

    MrMureno
    @MrMureno
    https://www.google.com/?ion=1&espv=2#safe=off&q=%D...

    ну и вот добавлю, что первые пару ссылок можно пооткрывать и почитать.
    там и проблема с тем что считает монитор - телефизором (использует другую цветовую схему)
    до вывода аля "ну маки так сглаживают и на ретине только смотрится норм"
  • Где требуется условие про нулл в LOD?

    MrMureno
    @MrMureno Куратор тега Unity
    Дмитрий Королев:
    Все верно вам описали выше, а я только чуток позанудствую тут

    Вы сохраняете ссылку на Объект камеры, а в скрипте используете Трансформ камеры.
    это немного не правильно так как

    gameobject.transform равнозначно gameobject.GetComponent()

    то есть по сути вы ничего не кешируете (в юните есть как бы встроенное кеширование таких вот штук, но как показывает практика оно и работает не всегда и если работает - то медленнее).
    Сохраните ссылку на Transform камеры, тогда по ссылке будете получать сразу значение, а не искать компонент (да и на будущее знание такого рода вещей пригодится)
  • Как вращает кватернион?

    MrMureno
    @MrMureno Куратор тега Unity
    ага, если всё и вся вокруг детородного органа вращать

    P.S.
    не смог удержаться от пошлой и дурацкой шутки.
  • Как вращает кватернион?

    MrMureno
    @MrMureno Куратор тега Unity
    dobrijzmej3d.blogspot.com/2012/07/ogre3d.html вот еще кстати перевод и там есть чуток про "почему ж таки кватернионы"
    по сути ,как уже описал выше, кватернионами проще минпулировать. нет проблем с "границами" аля 360 градусов и всяких как отличить -90 и 270 градусов)
  • Как вращает кватернион?

    MrMureno
    @MrMureno Куратор тега Unity
    ни разу не встречал сравнение кватернионов по скорости с чем либо.
    а информация? простое объяснение что это?
    если да, то обычно для начала хватает гугла и поиска "unity кватернион"
    одной из первых выдает неплохую статью
    https://habrahabr.ru/post/183908/
    для остального - википедия и юнити форум.
  • Как написать OnCollisionEnter()?

    MrMureno
    @MrMureno Куратор тега Unity
    Ну вот смотрите, в вашем же там примере

    void OnTriggerEnter(Collider bullet)
    {
    if (bullet.CompareTag("Enemy"))
    {
    e = true;
    Debug.Log("E");
    }
    }

    тут параметр функции Collider bullet - коллайдер. Точнее ссылка на коллайдер. у колайдера, как и у GameObject ( а еще точнее именно от него) есть тэг, слой и прочие атрибуты.

    а вот в том проблемном месте
    void OnCollisionEnter(Collision bullet)
    {
    if (bullet.CompareTag("Ring"))
    {
    r = true;
    Debug.Log("R");
    }
    }
    Параметром является информация о коллизии - Collision bullet.
    В этой информации есть ссылка на коллайдер, который вызвал коллизию - bullet.collider (В вашем случае эта ссылка на коллайдер, для проверки тегов и прочего как раз и нужна).
    А кроме коллайдера, там еще точки коллизий есть и нормаль, и наверно что-то еще не помню))

    Надеюсь понятнее стало.

    и еще раз повторю про названия)) к примеру кусочек с кодом про коллизию

    void OnCollisionEnter(Collision collisionInfo)
    {
    if (collisionInfo.collider.CompareTag("Ring"))
    {
    r = true;
    Debug.Log("R");
    }
    }

    так выглядит куда понятнее и тяжелее перепутать)
  • Как в unity3d с raycast запретить проваливаться (вниз) широкому объекту?

    MrMureno
    @MrMureno Куратор тега Unity
    где агрессия то?) просто активно интересуюсь) да и может кому потом поможет почитать ваше решение )
  • Как написать OnCollisionEnter()?

    MrMureno
    @MrMureno Куратор тега Unity
    ну и если придираться, то у вас там глобальная переменная bullet и внутри методов тоже bullet. чтоб не запутаться - назвали бы bulletGO (если что сокращение от GameObject) или как о так.
  • Как в unity3d с raycast запретить проваливаться (вниз) широкому объекту?

    MrMureno
    @MrMureno Куратор тега Unity
    и вопрос, что это у вас за срань такая что ДЕСЯТЬ объектов - кладут всю сцену на лопатки??
    ПРОСТЫЕ ОБЪЕКТЫ? просто кубы с коллайдерами? или на всех физическое тело есть? может на них стандартный тяжеловесный шейдер и тени еще?
  • Как в unity3d с raycast запретить проваливаться (вниз) широкому объекту?

    MrMureno
    @MrMureno Куратор тега Unity
    а ну ка картинку, какие ж это такие чудесные углы, что можно в 3d всего 6-ю лучами определить любое пересечение. Особенно "шлагбаумы" (тонкие палки много уже самого объекта/игрока).

    Делали и 2D платформеры, и 3D физические пазлы, и боевки в космосе.
    Все эти "реальная" физика - везде аккуратно и по своему применять просто нужно.

    Ну а так то да, на лучах физика была в 2D платформере - это очень дешево по ресурсам. хоть по 20 лучей посылай.
  • Как в unity3d с raycast запретить проваливаться (вниз) широкому объекту?

    MrMureno
    @MrMureno Куратор тега Unity
    странный вы, при raycast тоже движок физики срабатывает. А в вашем случае)) ха ну пускайте 5 лучей (по краям капсулы 4 и в серединке свой).
    А чтоб еще и "башкой" не проходило сквол препятствия при прыжке, еще столько же лучей вверх.

    О а еще ж надо упираться в стены и шлагбаумы.

    Вы не поверите, но физический движок, как раз и придумали чтоб оптимально это все посчитать. Немного статики и вменяемости с формами - и все прекрасно работает, даже на мобильных девайсах (новее какого нить iphone 3gs)
  • Как сделать покупку машины?

    MrMureno
    @MrMureno Куратор тега Unity
    на здоровье. я начал было сомневаться - помогают ли мои подсказки/объяснения)
  • Как сделать покупку машины?

    MrMureno
    @MrMureno Куратор тега Unity
    разберитесь с логикой. Кто "она" возвращает? сохранение очков и сохранение "покупки" вообще мало как связанны должны быть) PlayerPrefs.GetInt возвращает вам сохраненное значение, в случае если его не было то вернет default значение, для int это ноль. после покупки (когда отняли тысячу очков) вы сохранили по ключу "Savee" значение ноль, и снова его считываете, давая возможность повторно купить (отнять тысячу). Поидее при Нуле и ДОСТАТОЧНОМ кол-ве очков - доступна покупка. При покупке сохранить в Savee ЕДИНИЦУ, и при ЕДИНИЦЕ (считанной на старте) игроку доступен контент(корабль, машинка).

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

    И если уж на то пошло, какие-то обучающие курсы программирования? структур данных? просто образование "тематическое"? На лицо проблема "понимания чего вообще надобно", потому как вроде не совсем уж бестолково поясняю. (без обид, но посмотрев все ваши вопросы, складывается впечатление что кто-то вам сказал что можно взять Unity и не умея ДУМАТЬ (в смысле раскладывать задачу на простые подзадачи, систематизировать, формализировать и в таком духе) - сделать игру.