一、效果展示
二、准备
一个图片背景和一个幕布背景
三、步骤
3.1 创建工程,新建文件夹,将提前准备的图片放入,并改为“精灵”模式。
3.2 将主相机Projection改为“Orthographic”。
3.3 在场景中新建“Sprite”命名"Bg",调整大小并将改好图片背景拖入。
3.4 同理在场景中新建“Sprite”命名"Cover",调整大小并将准备好的幕布图片拖入(可以调整一下它的透明度),这里记得将Mask Interaction设为"Visible Outside Mask"。
3.5 在场景中新建“Sprite Mask”,在Inspector的Sprite Mask组件下选择Unity自带的“圆图”,并调整大小(画笔大小)。
3.6 新建文件夹命名“Prefabs”,将“Sprite Mask”拖入将其设置为预制体,并将原来在层级面板上的“Sprite Mask”删去。
3.7 在层级面板上新建空物体,重命名为“Masks”(用来放置预制体“Sprite Mask”)。
3.8 新建脚本,名为MasksMove,代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MasksMove : MonoBehaviour
{
public GameObject mask;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
pos.z = 0;
if (Input.GetMouseButton(0))
{
Instantiate(mask, pos, Quaternion.identity, transform);
}
}
}
3.9 将脚本挂载在空物体“Masks”下,并将预制体“Sprite Mask”拖入到相应位置。
3.10 运行程序并完善。
四、原理及小结
该原理相当于遮罩,“Sprite Mask”可以显现出后面的背景,通过生成多个“Sprite Mask”来透出后面的背景,这里放一下参考视频:http://【(方法很糙)Sprite遮罩实现刮刮乐】 https://www.bilibili.com/video/BV1ha411Y7Uu/?share_source=copy_web&vd_source=4281d6d540d09de72d605d985059520a