Задать вопрос
  • Как изменить слой текста в юнити?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Если вы имеете ввиду приоритет отрисовки среди элементов интерфейса, то их определяет порядок иерархии. Например, если вы расположите сначала текст, а потом картинку, то картинка будет рисоваться после текста, и, следовательно, его закроет.
    Если данная проблема наблюдается со всем канвасом в сравнении с другими элементами сцены, то имеет смысл создать отдельный Sorting Layer типа UI, расположить его ниже других (чтобы приоритет был выше) и установить его канвасу.
    Если вы имели ввиду текст типа TextMeshPro, то у него есть собственный order in layer, находящийся в меню Extra Settings.
    Если вы имели ввиду что-то другое, ответьте с более детальным описанием проблемы и скриншотами.
    Ответ написан
    Комментировать
  • Почему значение статической переменной не меняется?

    @Ezekiel4
    Охотник на пиратов и сборщик монолитов
    Если источник имеет коллайдер, результатом вы всегда будете получать источник. Только поэтому у вас не выпала NullPointerException. Метод Physics2D.Raycast всегда возвращает объект, но его поле collider может быть пустым (null), если луч ушёл в пустоту, тогда попытка вызвать метод collider.CompareTag вообще провалится.
    Если не хотите сильно заморачиваться, просто создайте слой, например, Player и повесьте его на игрока. Таким образом вы заодно избавитесь от необходимости проверять тег.
    https://docs.unity3d.com/ScriptReference/Physics2D...
    Как вы можете увидеть по ссылке выше, метод имеет перегрузку:
    // поле класса
    public LayerMask playerLayer;
    // метод из примера
    RaycastHit2D hitInfo = Physics2D.Raycast(ray2D.origin, ray2D.direction, 10, playerLayer);
    Ответ написан
    Комментировать
  • Как получить данные другого объекта?

    Figma-designer
    @Figma-designer
    Я бы проверял наличие навешенного скрипта и исходя из этого получал публичную переменную

    if (object.GetComponent<ScriptName>())
    {
       x = object.GetComponent<ScriptName>().y;
    }


    Раз у вас префабы, вы, вероятно, знаете все возможные варианты наличия скриптов и переменных в них.
    Ответ написан
    Комментировать