@@SMT-ks8yp Во многих платформера есть секретки(комнатки, места) они чем нибудь прикрыты, а когда туда немного заходишь они(передняя текстура) показывает что внутри.
@@evgen5488 я знаю, о чём ты говоришь. И предлагаю решение, которое кажется довольно простым. Положить прикрывающий спрайт поверх всего и поставить триггер, который будет убирать его пока игрок находится в нужной области.
@@evgen5488 берёшь спрайт, которым собираешься скрыть секретку. Ставишь куда нужно. Затем добавляешь компонент коллайдера, делаешь этот коллайдер размером с секретку и ставишь галку в is trigger - так он будет регистрировать другие коллайдеры, но перестанет сталкиваться сам. Затем добавляешь скрипт, в котором используешь методы OnTriggerEnter2D() и OnTriggerExit2D(), которые дают тебе ссылку на все коллайдеры, которые вошли или вышли из области твоего триггера. У них должен быть аргумент типа Collider2D, с которым ты дальше и работаешь, и допустим назовём его other. Дальше ставим условие, проверяющее тег или слой на объекте, от которого этот other коллайдер (other.gameObject.layer или other.gameObject.tag). Если это у тебя вошёл или вышел игрок, то соответственно делаешь спрайт объекта с триггером прозрачным или непрозрачным через изменение значения color.a (от нуля до единицы, тип float) в компоненте SpriteRenderer твоего объекта. Ссылку на компонент можешь взять через gameObject.GetComponent() в метода Start() или создать видимую в переменную, на которую мышью перетянуть компонент из того же объекта.
Я пытался использовать маску в интерфейсе чтобы нарезать хибар кругами, потому что кодить отдельный хитбар на каждую секцию это чот дофига. Но не получилось её применить вообще, и спасибо за видос.
Маска в UI - немножко другая тема. Она реализуется когда на объекте висит компонент Image и компонент Mask. Спрайт настроенный в Image задаёт форму маски. В компоненте Mask отключаем Show Mask Graphic. И теперь всё что является дочерним у данного объекта, будет показываться исключительно внутри маски. Надеюсь, у вас всё получится)
@@GDevAcademy несколько масок к одному объекту прикрепить возможно? А то в этом не будет смысла. Хотя, даже тогда оно будет полезно потому что можно сделать квадратный слайдер под круглой маской вместо того чтобы нарезать отдельные спрайты частей круга для процентов заполнения. Спасибо в любом случае.
охринеть, то что я искал, спасибо
спасибище огромнейшее, это очень полезная фича.
Привет, у тебя реально крутые ролики по пиксель артам, спасибо за твои труды.
Спасибо тебе большое !
Братан, странно что у тебя актив маленький. У тебя лучшие и нужные уроки
Прикольная штука
Можно ли сделать так, чтобы спрайт самой маски был виден, а не был прозрачным?
Круто как всегда.
спасибо!
Подскажи как в игре сделать места с секретами(например за кустами, когда заходишь спрайт кустов изчезает)?
Ммммм положить коллайдер с триггером и при входе туда игрока делать спрайт прозрачным?
@@SMT-ks8yp Во многих платформера есть секретки(комнатки, места) они чем нибудь прикрыты, а когда туда немного заходишь они(передняя текстура) показывает что внутри.
@@evgen5488 я знаю, о чём ты говоришь. И предлагаю решение, которое кажется довольно простым. Положить прикрывающий спрайт поверх всего и поставить триггер, который будет убирать его пока игрок находится в нужной области.
@@SMT-ks8yp Да, так, но как это сделать на примере?
@@evgen5488 берёшь спрайт, которым собираешься скрыть секретку. Ставишь куда нужно. Затем добавляешь компонент коллайдера, делаешь этот коллайдер размером с секретку и ставишь галку в is trigger - так он будет регистрировать другие коллайдеры, но перестанет сталкиваться сам. Затем добавляешь скрипт, в котором используешь методы OnTriggerEnter2D() и OnTriggerExit2D(), которые дают тебе ссылку на все коллайдеры, которые вошли или вышли из области твоего триггера. У них должен быть аргумент типа Collider2D, с которым ты дальше и работаешь, и допустим назовём его other. Дальше ставим условие, проверяющее тег или слой на объекте, от которого этот other коллайдер (other.gameObject.layer или other.gameObject.tag). Если это у тебя вошёл или вышел игрок, то соответственно делаешь спрайт объекта с триггером прозрачным или непрозрачным через изменение значения color.a (от нуля до единицы, тип float) в компоненте SpriteRenderer твоего объекта. Ссылку на компонент можешь взять через gameObject.GetComponent() в метода Start() или создать видимую в переменную, на которую мышью перетянуть компонент из того же объекта.
Я пытался использовать маску в интерфейсе чтобы нарезать хибар кругами, потому что кодить отдельный хитбар на каждую секцию это чот дофига. Но не получилось её применить вообще, и спасибо за видос.
Маска в UI - немножко другая тема. Она реализуется когда на объекте висит компонент Image и компонент Mask. Спрайт настроенный в Image задаёт форму маски. В компоненте Mask отключаем Show Mask Graphic. И теперь всё что является дочерним у данного объекта, будет показываться исключительно внутри маски. Надеюсь, у вас всё получится)
@@GDevAcademy несколько масок к одному объекту прикрепить возможно? А то в этом не будет смысла. Хотя, даже тогда оно будет полезно потому что можно сделать квадратный слайдер под круглой маской вместо того чтобы нарезать отдельные спрайты частей круга для процентов заполнения. Спасибо в любом случае.