Ответы пользователя по тегу Unity
  • Unity3d, из-за чего происходят ,указанные ниже баги, при смене платформы?

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

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

    и вообще работа с тапами и с мышкой очень сильно отличается) привыкайте к этой мысли.
    Мышь как минимум всегда существует. не бывает две мыши и тд и тп.
    Ответ написан
    Комментировать
  • Как реализовать двойной клик (Double Click)?

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

    1) отследить первое нажатие и запустить таймер
    2) отследить второе нажатие
    3) проверить что таймер не больше значения (что достаточно быстро совершен двойной клик, потом этот параметр можно и поднастроить для приятного экспириенса)
    4) проверить что первый и второй клик произошли рядом (координаты не далеко, какие-нибудь меньше 1 процента экранного места друг от друга)

    если и таймер маленький и клики рядом - считает что был дабл клик.

    а там хоть лучом, хоть по интерфеису, принцип останется таким же.

    и все это не оч сложно( но с телефона писать сюда для вас код увы) да и полезно будет самому сделать
    Ответ написан
    3 комментария
  • Реализация кнопки Back на Android в Unity3d?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Верно все написал Путин ))))
    а то что у вас " ругается на function Update () и return;"
    так у него на .js написано.

    у вас видать C#
    void Update()
    {
     if (Application.platform == RuntimePlatform.Android)
      {
        if (Input.GetKeyDown(KeyCode.Escape)) 
        {
          Application.Quit(); 
        }
      }
     }
    Ответ написан
    5 комментариев
  • Как вращает кватернион?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    и снова здраствуйте Дмитрий)
    "с достаточной ли скоростью" ? что?
    кватернионы это всего лишь вариант математического описания поворотов, для более "правильного" что-ли их сложения и прочих операций)
    С какой скоростью будете вращать - с такой и будет вращаться.
    Заменить этакий "определитель попали в зону или нет" состоящий из коллайдера, на объект который во все стороны лучи шлет. Скорее всего сомнительная затея. Как по производительности, так еще и куча проблем если вдруг нужна форма не круга, а квадрат, ромб. Не дай боже в объеме, а не просто в плоскости надо будет.

    Легче уже тогда завести список объектов и после их перемещения проходить по списку и определять расстояние) мол ближе чем 5 метров к центру "источника"
    Ответ написан
    7 комментариев
  • Как можно райкастом узнать колличество полигонов у объекта?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Правильно сказали, у вас после рейкаста
    void FixedUpdate()
        {
            RaycastHit hit;
    
            if (Physics.Raycast(transform.position, -Vector3.up, out hit))
            {
                print("Found an object - distance: " + hit.distance);
            }
        }


    есть (в объекте hit) ссылка на коллайдер/объект.

    а дальше, все что хотите достаете

    hit.collider.GetComponent<ЛЮБАЯ ИНФА>()
    mesh - геометрия
    transform - позиция и размеры
    ну и дальше из рендера материал, текстуру и прочая любая гадость навешанная на объект с этим коллайдером.
    Ответ написан
    Комментировать
  • Как написать OnCollisionEnter()?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    OnCollisionEnter там параметр коллизия, а не колллайдер. У коллизии не бывает тегов и прочего.
    oid OnCollisionEnter(Collision bullet)
        {
            if (bullet.(ТУТ УЗНАТЬ КОЛЛАЙДЕР ИЗ КОЛЛИЗИИ).CompareTag("Ring"))
            {
                r = true;
                Debug.Log("R");
            }


    и дальше по аналогии. Коллизия - по сути просто инфа о точках пересечения.
    Ответ написан
    3 комментария
  • Как изменить размер объекта, при переносе в другую сцену?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Самый очевидно простой вариант - соблюсти одинаковый scale в обоих сценах (и в будущем проблем так меньше будет)
    А если через скрипт, то "подгонять" скеил ручками.
    https://docs.unity3d.com/ScriptReference/Transform...
    void Example() {
            transform.localScale = new Vector3(5, 5, 5);
        }


    вообще я так понял вы ищете что-то вроде
    https://docs.unity3d.com/ScriptReference/MonoBehav...
    чтобы определить что вы попали в другую сцену?!

    А про камеру - ссылку на неё сохранить(на gameobject) и просто SetActive(bool f);
    public class ExampleClass : MonoBehaviour
    {
      //назначить в редакторе или в Awake() методе найти главную камеру
      //сам факт получить ссылку на камеру
      public GameObject cameraGO;
        void OnLevelWasLoaded(int level) {
            if (level == 13)//номер уровня или проверку по имени сделать
                {cameraGO.SetActive(true);}        
        }
    }


    И немного занудства. По хорошему вся эта кастомизация объекта должна сохраняться и описываться какой-нибудь структурой.
    В духе -> Список Деталей, а у каждой детали, Размер,Цвет и Прочность.
    Чтобы не через неразрушаемый объект переносить, а сохранив и передав , описывающую такую структуру, можно было восстановить кастомизированный вид.
    Появиться возможность как минимум сохранить два , три ,четыре вида кастомизации.

    (я так понял вы вроде тридэшник и надеюсь понятно в общих чертах рассказал)
    Ну а после уже и патерны-шматерны можете примастыривать.
    Ответ написан
    Комментировать
  • Unity3D: Почему нельзя выбрать скрипт?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    В какой-то из 5-х версий юнити, это поле стало неизменяемым. А видео туториал наверное успел чуток устареть.
    Ответ написан
    Комментировать
  • Как через слайдер регулировать миксера громкость?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    unity3d.com/ru/learn/tutorials/topics/audio/expose...
    https://docs.unity3d.com/ScriptReference/Audio.Aud...

    как-то так) Создать переменную в миксере, которую уже можно контролировать.
    Ответ написан
    Комментировать
  • Как лучше спроектировать игру в Unity?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    [Serialized] GameObject enemy в это поле ПОДСТАВЛЯТЬ нужный префаб. Сделали 5/10/20 префабов, нужный подгрузили и подставили в поле для генерации. А вот "обертки над поведением" сделать одинаковыми. У любого врага одинаково вызывается анимация/атака/смерть.

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

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Уже написали использовать Rigidbody и двигать его через методы Rigidbody .
    даже в документации написано было,что двигать через трансформ и хотеть обрабатывать корректно физику столкновений - как бы глупо.

    https://docs.unity3d.com/ScriptReference/Rigidbody...
    Ответ написан
    Комментировать
  • Как сделать покупку машины?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Для начала - что за чушь. Нельзя отнимать на старте каждый раз 500 очков у игрока.
    первый раз он запустил игру с 600 очками и остался с сотней и открытой машиной. в следующий раз у него будет уже ноль очков и никакой машины.
    Если именно набранные очки нужно потратить на открытие контента (в данном случае машины) - то как минимум сохранить (запомнить что он его уже открыл), в теже PlayerPrefs
    Если же не тратить , а именно наличие 500 и более очков открывает машину, то по аналогии со звездами.(хотя вам похоже нужен именно первый вариант)

    И на Update() сохранять в PlayerPrefs ?? серьезно? зачем каждый кадр писать, если мы точно знаем когда меняется количество очков ?

    сохраняем в методе AddPoints() ну и в методе отнимания очков если он будет отдельным)
    Ответ написан
    7 комментариев
  • Как сделать одинаковую силу прыжка в unity?

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

    Там есть параметр - тип применяемой силы, вам я так понимаю нужен docs.unity3d.com/ScriptReference/ForceMode.Impulse.html

    Импульс. разовое применение силы. эдакий пинок под зад)
    Ответ написан
    Комментировать
  • Как повернуть камеру против часовой стрелки с использованием кватернионов и углов Эйлера?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Quaternion neededRotation = transform.rotation;
    neededRotation *= Quaternion.Euler(0, 90, 0); // this add a 90 degrees Y rotation

    transform.rotation = Quaternion.Slerp(transform.rotation, neededRotation , Time.deltaTime * damping);

    Очень по быстрому писал, поэтому просто общий смысл:
    Запомнить текущий поворот.
    Прибавить к нему нужный.
    И постепенно как хочешь от текущего к нужному, хоть сразу, хоть через Lerp вращай.

    Надеюсь поможет)
    Ответ написан
  • Осилит ли телефон 600 box collider?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    docs.unity3d.com/ru/current/Manual/class-Rigidbody.html
    ...составные коллайдеры..
    Для среднего телефона не должно быть непосильным, тем более в гонках трасса - сплошная статика ведь будет?!

    Проблемы возникают , когда много физических тел "не спит", да еще и коллизиями других "будит"))

    Да и самое простое - проверить ;) на том самом абстрактном среднем телефоне)
    Ответ написан
    1 комментарий
  • Unity Android Какие есть варианты анимации персонажа и оружия кроме готовых клипов сост. из кадров?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Если правильно понял "персонаж" это спраит?!

    Не очень описано что за анимации и игра, но все 30 анимационных клипов сразу обязательно нужно сразу загружать? Может есть возможность загружать только нужный, и заранее подгружать следующий?

    А так еще раз повторюсь, почти не понятно что за персонаж и что за анимации и чего вам от них надо.
    Ответ написан
    1 комментарий
  • Как включить показ коллайдеров?

    MrMureno
    @MrMureno Куратор тега Unity
    VR for all
    Обычно просто Mesh Render соответствующий временно вешался. Потом или выключался, или удалялся.
    Да и стык в стык так легче, склеив кубы с помощью хоткея "V" , а потом просто выключив лишние компоненты.
    Ответ написан
    Комментировать