컷아웃 마스크(Cutout Mask / Reverse Mask)
Unity 에서 특정한 곳만 보이도록 처리하기 위해서 찾다가 발견한 코드로 간단하게 포스팅한다.
Mask의 기능을 활용해서 특정 영역을 기준으로 마스크 처리되는 효과이다.
원본 링크: [링크]
반응형
< CutoutMaskUI.cs >
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Rendering;
using System.Collections;
public class CutoutMaskUI : Image
{
protected override void Start()
{
base.Start();
StartCoroutine(Fix());
}
private IEnumerator Fix()
{
yield return null;
maskable = false;
maskable = true;
}
public override Material materialForRendering
{
get
{
Material material = new Material(base.materialForRendering);
material.SetInt("_StencilComp", (int)CompareFunction.NotEqual);
return material;
}
}
}
< 설명 >
CompareFunction.NotEqual |
Pass depth or stencil test when new value is greater or equal than current value. |
Image를 상속받은 해당 스크립트(CutoutMaskUI.cs)에서 스탠실 값을 변경해서 처리하는 간단한 코드이다.
반응형
< Hierarhcy 구성 >
<Mask Compopent>
< CutoutMaskUI Compopent >
Unity Stencil : [링크]
★☆☆☆☆
반응형
댓글