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

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Я думаю сделать постоянный опрос кнопки но действие выполнить один раз.
    вообще то достаточно отлавливать событие нажатия кнопки вообще, и проверять какую именно нажали. на нужную реагировать
    Ответ написан
    Комментировать
  • The same field name is serialized multiple times in the class or its parent class. Как исправить ошибку?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    если еще не нашли решения..
    и сложно придумать другую "архитектуру".. вопросы:
    - дерево родителя и потомков? если есть иерархия более одного уровня:
    - у вас может быть ошибка в последовательности выяснения "потомка"
    - имхо один родитель, при чем virtual
    - использование интерфейсов (но не конфликт имени/типа поля!! ;)
    - и гарантия десирализации в нужный класс
    .. вы же пытаетесь сделать нечто вроде конвейера "скриптования"? (очень очень много лет назад пытался использовать такой подход.. мое работало )).. но TVision приехал очень быстро.. и наработки потеряли смысл )))
    Ответ написан
  • Как решить проблему с типами данных?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    определение AlphabeticNotation в студию!
    ... а то у меня подозрения, что это символьная арифметика безразмерной величины. тогда типовые рецепты не пойдут, нужно приведение типа, но с учетом размерности... не так
    HealthBarImage.fillAmount = (float) HealthBossNow / HealthBoss;
    а скорее так
    HealthBarImage.fillAmount = ((double) HealthBossNow) / ((double) HealthBoss);
    а еще в студию тип HealthBarImage.fillAmount... а еще, возможно допустимо перегрузить оператор деления для AlphabeticNotation... и это лучший вариант, но он требует понимания типа, языка.. ну и математики )))

    ps а если это еще и двухмерная величина.... то вам еще над многим придется подумать
    Ответ написан
    Комментировать
  • Почему счет в таблице лидеров от Google Play выводится в неправильном формате?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Счет в таблице должен показываться в временном формате, но он показывается в виде дробного числа (секунды.миллисекунды).


    в чем проблема???

    ps из каментов:

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

    pps https://ru.wikipedia.org/wiki/ISO_8601

    там табличка. в ней последняя строка
    Ответ написан
  • C# как узнать время из интернета?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    !!! от жешь поспешность .. да и старость.. даже не посмотрел выдачу (вальнул nntp по началу ;(( ).. исправляю:
    ntp
    c# ntp
    unity ntp

    ps
    ntp servers
    Ответ написан
    Комментировать
  • Visual Studio не хочет работать с символьной переменной, что делать?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    у вас на скрине однозначно не тот символ. после имени экземпляра поставьте точку и подождите выпадающий список членов класса и просто выбирайте из него

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

    ps хотя .Net и позволяет использовать все символы Unicode, это не очень хорошая идея использовать символы отсутствующие на клавиатуре. что вы сами себе и доказываете такими граблями
    Ответ написан
    5 комментариев
  • Хорошая книга по C# с практикой и на понятном языке?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    сначала мне бы хорошо изучить шарп
    (вроде с этого и начинал, но потерялось, восстанавливаю) это лучшая отправная точка
    и на понятном языке
    это явно главная проблема..
    приведу любимую (на протяжении уже десятков лет) цитату:
    язык, как средство общения, становится коммуникабельным, лишь тогда, когда собеседники опираются на сходный жизненный опыт
    (с) Элан Уотс, "Путь Дзэн"
    и обязательно с ... интерактивом
    ну блин.. интерактив и книги??? это не совместимо..
    интерактив это сайты ... и/или опять игры смыслов? (ваши непонятки?).. ,бывает интерактив в продвинутых IDE, для поддерживаемых языков
    Ответ написан
  • Бесконечное повторение?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    .. почитал каменты.. ну теперь точно не пройду мимо..
    Бесконечное повторение?
    есть фундаментальный принцип для организации циклов, любых - обеспечьте условие выхода
    необходимо и достаточно одно условие выхода, но оно должно быть надежным
    .. все остальное суета на пустом месте
    .. хотя реальная логика может быть и сложнее .. но только тогда, когда вы овладели принципом, и исполнили его..

    по коду
    замените
    if (bol == false) {}
    if (bol == true) {}
    на
    if (bol) {} 
    else {}

    тогда легче заметить, bol у вас тут не определено
    чисто интуитивно (если бы не коварный bol) напрашивалось бы примерно так:
    if (Input.GetKeyDown(KeyCode.Escape))
          Pause();
    else
          Resume();

    или наоборот, но это лишь один символ
    if (!Input.GetKeyDown(KeyCode.Escape))
          Pause();
    else
          Resume();
    Ответ написан
    Комментировать
  • C# Unity Как очистить текстовый файл(.txt)?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Комментировать
  • Как заполнить недостающие элементы словаря?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - думаю тег Unity тут лишний ))
    2 -
    3. Если несколько неизвестных элементов стоят в ряд, то значение float первого из таких элементов является средним арифметическим первого известного элемента перед этим рядом и первого известного элемента после этого ряда.
    ну тут что то из ряда выпадает.. почему не построить дискретный ряд средних между начальным и конечным? .. но это тоже мысли в слух. если у вас условия заданы извне или вы жестко настаиваете что так и только так дело то хозяйское
    3 - все три (ваших. по тексту вопроса) пункта, весьма просты. вопрос(ы) только в том:
    - когда вы обнаруживаете нехватку значений?
    - когда коррекцию надо выполнять?
    - .. как то сведите эти события к решению ;)))
    4 - а вот тут, единственный момент, который, на мой взгляд, вам важнее всего усвоить в контексте вопроса
    - ключ в c# dictionary уникален
    - вы ограничиваете значения диапазоном [0-360] (кстати, почему не [0-359] или [1-360]? ну как хотите)
    - вам точно проще использовать массив float[360]. не благодарите вру, люблю отметки. и этот пункт, на данный момент, самый ценный для вас ;))

    ps что то подумалось.. вам наверное надо как то отличить значения, которые еще ни когда не инициализировались?.. возможно подойдет float?[360] (Nullable) это хороший способ отличить значение, которое еще не принимало численную величину, не создавая при этом каких других заумных абстракций..
    .. и даже обозначить случай, когда ранее определенной величине, надо присвоить значение, которое четко говорит а теперь мы опять не знаем числа, и настаиваем на неопределенности значения
    Ответ написан
    Комментировать
  • Как реализовать искусственный интеллект бота,преследующего игрока?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - получить образование в области ИИ
    2 - спроектировать нужный ИИ, доступный на текущем технологическом уровне
    3 - реализовать

    ps короткий путь - заказать и купить
    Ответ написан
    Комментировать
  • Как вызвать прерывание в child классе?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - base.OnTriggerStay(other); ретурнит то из себя
    2 - примерно так
    class One : Number
        public override void OnTriggerStay(Collider other)
        {
           if (hasInteract)
               return;
           Debug.Log(other.gameobject.name)
        }

    3 - upd .. ну и осознать суть override и base
    4 - а еще отладчик можно освоить. в VS по F11 по шагам пройти и все понять )))
    Ответ написан
    1 комментарий
  • Как реализовать генератор 2D мира?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    есть несколько важных навыков на пути к такой цели. их стоит освоить:
    - самостоятельный поиск информации
    - самообразование
    - дисциплина
    Ответ написан
  • Как удалить объект из массива в Unity 2D?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    укажите о каком типе (классе) идет речь?

    ps Илья Гарбажий,
    GameObjects[]
    по правилам языка C#, это массив. динамическое изменение размерности не предусмотрено
    pps совет - используйте список. и стоит изучить различия
    Ответ написан
    5 комментариев
  • Что выбрать, Unity или .NET?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    цель то какая?
    если трудоустройство - .net
    еще одна не очень радостная новость - .net все тоже самое
    спрос хороший, но на спецов. ну может чуток больше шансов куда то нырнуть джуном не имея ни особо глубокого опыта в самом кодинге, ни опыта какой либо предметной области
    Ответ написан
    Комментировать
  • Как убирать пустоту из листа, оставшуюся после уничтожения объектов, в него входящих?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    1 - при использовании foreach ни сама коллекция (лист, массив, перечисление, не важно) ни ее элементы, не подлежат изменению. только чтение. это правило языка C# (но за Mono не отвечаю)

    2 - про использовании for обходите коллекцию с конца, а не сначала, таким образом не будет проблем с индексами (хотя можно и while использовать для обхода с головы, но на for думаю быстрее поймете суть). пример
    for(int i = Group.Count - 1; i >= 0; i--)
    {
      Destroy(list[i]);
      list.RemoveAt(i); // о размере списка не заморачиваемся вообще
    }


    3 - Unity поддерживает LINQ? там можно было бы еще элегантнее. но LINQ всегда проигрывает по производительности, которая в играх обычно важна. тем не менее
    Group.RemoveAll(tmp => tmp is MissingReferenceException);
    // хотя надо проверить совместимость

    upd вообще то выходит Destroy не делаем. тогда теряется вся элегантность.. ну или надо подольше подумать ))

    ps ну тогда уж и while это примерно так
    var i = 0;
    while (i < Group.Count)
      if (Group[i] is MissingReferenceException)
      {
        Destroy(Group[i]);
        Group.RemoveAt(i);
      }
      else
        i++;

    ну и хардкорное применение for приктически так же выглядит
    for (var i = 0; i < Group.Count;) // да да, инкримент просто не пишем и получается аналог while
      if (Group[i] is MissingReferenceException)
      {
        Destroy(Group[i]);
        Group.RemoveAt(i);
      }
      else
        i++;
    Ответ написан
    Комментировать
  • Производительность С++ и С#?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Unity != .Net FrameWork
    юнити основан на моно и использует il2cpp
    и если авторы рекомендаций об этом не знали, это их проблемы
    Ответ написан
    Комментировать
  • Что означает .Net для Unity разработчика?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    1 - .Net существует не только для Unity. точнее изначально существовал сам по себе. гулить историю/архитектуру Unity (что такое Mono, IL2Cpp и много интересных вещей, не все из которых реально необходимы что бы начать кодить)
    знание .Net для Unity разработчика
    может означать, что
    просто знание .Net
    недостаточно

    2 - в различных версиях, Unity поддерживал не только C#, бывали Js, и даже Boo. в этом контексте
    знание .Net для Unity разработчика
    может означать, что
    надо уметь кодить на C# в Unity, а не на Js или Boo


    3 - .. или и то и другое вместе
    Ответ написан
    4 комментария
  • Как реализовать бесконечный баланс Unity?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    Ответ написан
    Комментировать