• Как сделать переключение между двумя состояниями при каждом нажатии клавиши Z?

    @DrRen7
    if (Input.GetKeyDown(KeyCode.Z) && !isPressed)
    {
        target = turretParent;
        distance = dist;
        heightPosition = height;
        isPressed = true;
    }
    
    if (Input.GetKeyDown(KeyCode.Z) && isPressed)
    {
        target = turretBarrel;
        distance = 0f;
        heightPosition = 0f;
        isPressed = false;
    }

    щас будет работать при отпуске Z ,для при нажатии поменять GetKeyDown на GetKeyUp
    Ответ написан
    Комментировать
  • Почему OnTriggerEnter не работает?

    Amir228
    @Amir228
    Скорее всего дело в Rigidbody, он работает только с обьектами у которых есть Rigidbody. Если твой игрок без этого компонента, то добавь его. Если у игрока он есть то посмотри на слои, может в них дело.
    Ответ написан
    Комментировать
  • Почему позиция объекта не меняется?

    GavriKos
    @GavriKos Куратор тега Unity
    Вы меняете позицию не тому экземпляру, который заспавнили. Скорее всего в этом дело.
    Результат Instantiate в переменную - и менйте позицию ему.

    А еще лчучще вынести перемещение в отдельный скрипт, и повесить его на инстанцируемого.
    Ответ написан
    1 комментарий
  • Как сделать фильтр слов в (TMP_)InputField?

    @romazhan
    Для реализации фильтра слов в `TMP_InputField` вы можете использовать регулярные выражения. Регулярные выражения позволяют искать в тексте определенные шаблоны символов, которые определяются с помощью специального синтаксиса.

    Для реализации фильтра в вашем случае нужно создать регулярное выражение, которое будет искать слова, которые вы хотите фильтровать. Например, чтобы удалить слово "лох" из текста, можно использовать следующее регулярное выражение: /\bлох\b/gi
    Это выражение ищет слово "лох" (без учета регистра, благодаря флагу "i"), находящееся отдельно от других слов. Символы "\b" обозначают границу слова.

    Чтобы воспользоваться регулярным выражением в вашем скрипте, вам нужно будет использовать класс `System.Text.RegularExpressions.Regex`:
    string inputText = "Привет, меня зовут Иван и я не лох";
    string pattern = @"/\bлох\b/gi";
    string replacement = "";
    string result = Regex.Replace(inputText, pattern, replacement);
    
    Debug.Log(result);
    Ответ написан
    Комментировать
  • При уничтожений одного обьекта уничтожаются все, как исправить?

    K0TlK
    @K0TlK
    Буллю людей.
    Потому что хп зомби у тебя статик поле. Всё, что статик - принадлежит классу, всё что не статик принадлежит конкретному объекту, класс - фабрика объектов, существует в единичном экземпляре => твое хп одно для всех => если хп == 0, то оно 0 у всех зомби. Убирай статику, делай TryGetComponent(out Zombie zombie) в OnCollisionEnter в Bullet и отнимай хп у конкретного зомби.
    Ответ написан