Version: 2018.4
9-slicing Sprites
精灵图集

Sprite Masks

Sprite Masks are used to either hide or reveal parts of a Sprite or group of Sprites. The Sprite Mask only affects objects using the Sprite Renderer Component.

Creating a Sprite Mask

To create a Sprite Mask select from the main menu GameObject > 2D Object > Sprite Mask.

Creating a Sprite Mask from the menu
Creating a Sprite Mask from the menu
A new Sprite Mask GameObject is created in the Scene
A new Sprite Mask GameObject is created in the Scene

Properties

Property Function
Sprite The sprite to be used as a mask.
Alpha Cutoff If the alpha contains a blend between transparent and opaque areas, you can manually determine the cutoff point for which areas will be shown. You change this cutoff by adjusting the Alpha Cutoff slider.
Range Start The Range Start is the Sorting Layer which the mask starts masking from.
Sorting Layer The Sorting Layer for the mask.
Order in Layer The order within the Sorting Layer.
Range End
Mask All By default the mask will affect all sorting layers behind it (lower sorting order).
Custom The range end can be set to a custom Sorting Layer and Order in Layer.

Using Sprite Masks

The Sprite to be used as a mask needs to be assigned to the Sprite Mask Component
The Sprite to be used as a mask needs to be assigned to the Sprite Mask Component

The Sprite Mask GameObject itself will not be visible in scene, only the resulting interactions with Sprites. To view Sprite Masks in the scene, select the Sprite Mask option in the Scene Menu.

Scene view with Sprite Mask view turned on in the scene
Scene view with Sprite Mask view turned on in the scene

Sprite Masks are always in effect. Sprites to be affected by a Sprite Mask need to have their Mask Interaction set in the Sprite Renderer.

The character sprites Mask Interaction is set to Visible Under Mask thus only parts of the sprite that are in the mask area are visible
The character sprites Mask Interaction is set to Visible Under Mask thus only parts of the sprite that are in the mask area are visible

By default a Sprite Mask will affect any sprite in the scene that has their Mask Interaction set to Visible or Not Visible Under Mask. Quite often we want the mask to only affect a particular sprite or a group of sprites.

The character sprites are interacting with masks on both the cards
The character sprites are interacting with masks on both the cards

One method of ensuring the mask is interacting with particular sprites is to use a Sorting Group Component.

Sorting Group Component added to the Parent GameObject ensures the mask will affect only children of that Sorting Group
Sorting Group Component added to the Parent GameObject ensures the mask will affect only children of that Sorting Group

An alternative method of controlling the effect of the mask is to use the Custom Range Settings of a Sprite Mask.

A Sprite Mask with a Custom Range setting ensures the mask will affect only Sprites in the specified Sorting Layer or Order in Layer range
A Sprite Mask with a Custom Range setting ensures the mask will affect only Sprites in the specified Sorting Layer or Order in Layer range

The Range Start and Range End provides the ability to selectively mask sprites based on their Sorting Layer or Order in Layer.




  • 2017–05–26 页面已发布但未经编辑审查

  • New feature in Unity 2017.1 NewIn20171

9-slicing Sprites
精灵图集