Как сделать так что бы спрайт был виден только в пределах коллайдера?

Долго мучался но так и не пришёл к ответу как седлать так что бы спрайт обрезался там где заканчивается коллайдер. Пытался через Sprite Mask но у него определённые формы по типу квадрат и круг, мне это не подходило. Копался в разделе Sprite Renderer в документации и ничего не нашёл. О мудрые гуру юнити, поделитесь крупицей своих необъятных знаний с недалёким новичком.

Зелёная линия - коллайдер, картинка стены - спрайт. введите сюда описание изображения


Ответы (1 шт):

Автор решения: WiSeeker

Компонент SpriteMask принимает спрайт любой форы, если Ваш коллайдер не деформируется во время работы приложения, то нужно в граф. редакторе создать форму повторяющую коллайдер, сохранить в формате png, чтобы пространство за пределами формы оставались прозрачными. В поле Sprite компонента SpriteMask перетаскиваете созданную форму для маски, затем объект, который будет маскироваться, делаем дочерним тому, у которого весить компонент SpriteMask. В компоненте SpriteRenderer в поле MaskInterection выбираем Visible Inside Mask. В примере ниже выбран пункт Visible Outside Mask, который маскирует только область, которую перекрывает маска. Если же Ваш коллайдер меняет свою форму по мере работы приложения, то в этом случае нужно писать кастомную шейдер-маску.

введите сюда описание изображения

→ Ссылка