Маска спрайта в Unity (Sprite mask)

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

Комментарии •

  • @winter2021inmemory
    @winter2021inmemory 3 года назад +4

    охринеть, то что я искал, спасибо

  • @DroidGame2023
    @DroidGame2023 Год назад

    спасибище огромнейшее, это очень полезная фича.

  • @yareyare6923
    @yareyare6923 3 года назад +1

    Привет, у тебя реально крутые ролики по пиксель артам, спасибо за твои труды.

  • @Octopusbanana123
    @Octopusbanana123 3 года назад +1

    Спасибо тебе большое !

  • @askerghos3794
    @askerghos3794 3 года назад +1

    Братан, странно что у тебя актив маленький. У тебя лучшие и нужные уроки

  • @Камушек-ф1к
    @Камушек-ф1к 3 года назад

    Прикольная штука

  • @OkMiracle
    @OkMiracle 11 месяцев назад

    Можно ли сделать так, чтобы спрайт самой маски был виден, а не был прозрачным?

  • @engineerzy3124
    @engineerzy3124 3 года назад +1

    Круто как всегда.

  • @batni_
    @batni_ 3 года назад

    спасибо!

  • @evgen5488
    @evgen5488 3 года назад +1

    Подскажи как в игре сделать места с секретами(например за кустами, когда заходишь спрайт кустов изчезает)?

    • @SMT-ks8yp
      @SMT-ks8yp 3 года назад

      Ммммм положить коллайдер с триггером и при входе туда игрока делать спрайт прозрачным?

    • @evgen5488
      @evgen5488 3 года назад

      @@SMT-ks8yp Во многих платформера есть секретки(комнатки, места) они чем нибудь прикрыты, а когда туда немного заходишь они(передняя текстура) показывает что внутри.

    • @SMT-ks8yp
      @SMT-ks8yp 3 года назад +2

      @@evgen5488 я знаю, о чём ты говоришь. И предлагаю решение, которое кажется довольно простым. Положить прикрывающий спрайт поверх всего и поставить триггер, который будет убирать его пока игрок находится в нужной области.

    • @evgen5488
      @evgen5488 3 года назад

      @@SMT-ks8yp Да, так, но как это сделать на примере?

    • @SMT-ks8yp
      @SMT-ks8yp 3 года назад

      @@evgen5488 берёшь спрайт, которым собираешься скрыть секретку. Ставишь куда нужно. Затем добавляешь компонент коллайдера, делаешь этот коллайдер размером с секретку и ставишь галку в is trigger - так он будет регистрировать другие коллайдеры, но перестанет сталкиваться сам. Затем добавляешь скрипт, в котором используешь методы OnTriggerEnter2D() и OnTriggerExit2D(), которые дают тебе ссылку на все коллайдеры, которые вошли или вышли из области твоего триггера. У них должен быть аргумент типа Collider2D, с которым ты дальше и работаешь, и допустим назовём его other. Дальше ставим условие, проверяющее тег или слой на объекте, от которого этот other коллайдер (other.gameObject.layer или other.gameObject.tag). Если это у тебя вошёл или вышел игрок, то соответственно делаешь спрайт объекта с триггером прозрачным или непрозрачным через изменение значения color.a (от нуля до единицы, тип float) в компоненте SpriteRenderer твоего объекта. Ссылку на компонент можешь взять через gameObject.GetComponent() в метода Start() или создать видимую в переменную, на которую мышью перетянуть компонент из того же объекта.

  • @SMT-ks8yp
    @SMT-ks8yp 3 года назад

    Я пытался использовать маску в интерфейсе чтобы нарезать хибар кругами, потому что кодить отдельный хитбар на каждую секцию это чот дофига. Но не получилось её применить вообще, и спасибо за видос.

    • @GDevAcademy
      @GDevAcademy  3 года назад +1

      Маска в UI - немножко другая тема. Она реализуется когда на объекте висит компонент Image и компонент Mask. Спрайт настроенный в Image задаёт форму маски. В компоненте Mask отключаем Show Mask Graphic. И теперь всё что является дочерним у данного объекта, будет показываться исключительно внутри маски. Надеюсь, у вас всё получится)

    • @SMT-ks8yp
      @SMT-ks8yp 3 года назад

      @@GDevAcademy несколько масок к одному объекту прикрепить возможно? А то в этом не будет смысла. Хотя, даже тогда оно будет полезно потому что можно сделать квадратный слайдер под круглой маской вместо того чтобы нарезать отдельные спрайты частей круга для процентов заполнения. Спасибо в любом случае.