- Home /
Sprite Renderer Interaction Between Two Sprite Masks?
I have two Sprite Mask components that I would like to apply to a Sprite Renderer components. One Sprite Mask component (denoted by the orange box) is at the parent of of all Mercenary game objects, which in turn have multiple Sprite Renderer components. This parent Sprite Mask Component is meant to keep the sprites visible when inside of it, as shown in the image. It works for the most part, except the hair. This is due that the hair has its own Sprite Mask component to hide the hair when wearing a headgear. So it ends up having interesting, yet understandable outcomes:
[ A ] The Mask Interaction attribute on the hair's Sprite Renderer component is set to None and the Sprite attribute on the Sprite Mask component is set to none. Obviously this makes it is visible both outside and inside the parent Sprite Mask and it does not cut of the extra hair popping out of the hood.
[ B ] The Mask Interaction attribute on the hair's Sprite Renderer component is set to Visible Inside Mask and the Sprite attribute on the Sprite Mask component is set to HeadMask (a mask for the shape of the head). This makes it so that whenever the hair is outside the parent mask it follows its local Sprite Mask component. You can see that the hair is rounded. However, inside the parent mask, it ignores the local Sprite Mask component and fully follows the parent Sprite Mask component, thus showing all the hair (you can see tufts of hair popping out of the hood).
[ C ] The Mask Interaction attribute on the hair's Sprite Renderer component is set to Visible Inside Mask and the Sprite attribute on the Sprite Mask component is set to none. This makes the desired outcome of the parent Sprite Mask to occur, but since the local Sprite Mask doesn't have a sprite, it allows the tufts of hair to pop out of the hood.
These are all shown in the attached files. I am looking for a combination of sorts between B and C. Pretty much I'm looking for "and" mask; show the parts of the hair that is under both parent mask and local mask.
Is there any way to do this in Unity without having to resort to shaders? If not then I guess pointing me in the right direction towards shaders would be helpful. Thanks!
Your answer
Follow this Question
Related Questions
Why is my picture distorted? 0 Answers
Sprite with MaterialPropertyBlock not updating until Animated 1 Answer
Create a shader using mask for sprite 1 Answer
Sprite masking 3 Answers
Multiple sprite mask 0 Answers