여기 내가 의견에서 말한 것을 구현 한 것입니다.
마스크의 텍스처는 아래 코드가 제대로 작동하도록 이미지 텍스처와 크기가 같아야합니다. 그렇지 않은 경우 마스크와 겹치는 픽셀과 그렇지 않은 픽셀을 계산해야합니다.
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class GetMaskedImage : MonoBehaviour
{
public Image img;
public Image mask;
public RawImage outputImg;
void Start()
{
Texture2D output = new Texture2D(img.sprite.texture.width, img.sprite.texture.height);
for (int i = 0; i < img.sprite.texture.width; i++)
{
for (int j = 0; j < img.sprite.texture.height; j++)
{
if (mask.sprite.texture.GetPixel(i, j).a > 0.5f)
output.SetPixel(i, j, img.sprite.texture.GetPixel(i, j));
else
output.SetPixel(i, j, new Color(1f, 1f, 1f, 0f));
}
}
output.Apply();
outputImg.texture = output;
}
}
출력 텍스처를 직접 계산해야한다고 생각합니다. 이 말은 이미지와 마스크 이미지를 가져 와서 마스크에 따라 이미지의 픽셀을 투명하게 만들어야한다는 뜻입니다. –