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

    @Mixer1111
    Я бы советовал делать всё с таймером не на инвоке, а на IEnumerator'е, там всё наглядней некуда:
    IEnumerator test() //Создаёшь новый IEnumerator
    {
      //Внутри можешь писать код как в обычном методе
      yield return new WaitForSeconds(<секунды>); //Ждёт нужное количество секунд
    }


    Таким образом всё ещё проще и понятнее на мой взгляд
    А там дальше создаёшь переменную с секундами для ожидания, и прибавляешь в зависимости от чего либо ифами, ну или просто так. Только вот нужно в IEnumerator'е хотя бы одно ожидание сделать, или будет вылетать исключение
    UPD: забыл сказать, что вызвать её нужно не как функцию, хоть по сути функцией и является, а так:
    StartCoroutine(test(/*Ну и аргументы, если нужно*/));
    Ответ написан
    Комментировать
  • Как отключить кнопку, если на ней есть нужный скрипт, но сама кнопка не должна отображаться?

    @Mixer1111
    На самом деле на кнопку никаких скриптов кидать не стоит, лучше для этого сделать отдельный пустой объект ( такой объект называется GameController), в нём прописывать все функции для кнопок, а потом добавить кнопке функцию из этого объекта. И тогда можно спокойно выключать кнопку
    Ответ написан
    Комментировать
  • Как сделать touch-передвижение объекта в юнити?

    @Mixer1111
    Строка
    Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    Вернёт тебе в переменную mousePos координаты мышки в формате координат мира
    А потом если нужно задетектить клик мыши по объекту при помощи void OnMouseDown(), и если это тот объект, начать перемещать. Получится что-то такое:

    void OnMouseOver()
    {
      if (<проверка, нужный ли тебе объект>)
      {
        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        <перемещение твоего объекта в позицию mousePos>
      }
    }


    (да, если сделаешь всё для мышки - на телефоне всё будет работать)
    Ответ написан
  • Ошибка unity c# локальная переменная как исправить?

    @Mixer1111
    Ты в void OnCollisionEnter2D фигурную скобку в конце перед void OnCollisionExit2D не закрыл
    Ответ написан
    1 комментарий
  • Как правильно сделать открытие кейсов как в бравл старсе?

    @Mixer1111
    Я бы предложил бы генерировать рандомное число от 0 до 100, а потом по шансам проверять на то, меньше ли выпавшее число числа шанса. Например:
    Шанс на выпадение героя в целом 20%. Выкидываешь рандомное число от 0 до 100, а потом проверяешь - "выпавшее рандомное число меньше шанса (по примеру, 20) на выпадение героя?" и если нет - герой не выпал, но если да, то выбрасываешь новое число от 0 до количества героев всего, что решит, какой герой тебе выпадет
    Если нужна редкость - то то рандомное число, которое от 0 до 100 проверяй последовательно, от самой редкой до самой частой редкости
    Как-то так
    Ответ написан
    2 комментария