admin管理员组文章数量:1794759
Unity 图片 涂抹/擦除/刮刮乐 效果展示 包含 Sprite, Image, Mesh的涂抹效果
Unity 2D图片 涂抹/擦除/刮刮乐 效果展示 包含 Sprite, Image, Mesh的涂抹效果
参数
progressText: 显示百分比的文本
maskImg: 需要擦除的图片
brush: 笔刷样式
案例
最新版完整插件下载地址:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
/// 擦除Demo
/// </summary>
public class Dear31ErasureDemo : MonoBehaviour
{[SerializeField] private Text progressText; //显示 当前擦除的进度[SerializeField] private Image maskImg; //遮罩图 待擦除的[SerializeField] private Texture brush; //笔刷的纹理private ScratchCardManager cardManager; //ScratchCardManager 负责ScratchCard的组件 擦除功能管理//需要在Awake中进行初始化操作//其实你放到Start里也一样。。。//但是最好Manager这类创建和实例化 放到 Awake里来做void Awake(){#region Initializevar prefab = Resources.Load<GameObject>( "Prefabs/ScratchCard" );if ( null == prefab ){throw new UnityException( "ScratchCard 预设文件找不到..." );}var instance = GameObject.Instantiate( prefab );if ( null == instance ){#if UNITY_EDITOR || ENABLE_LOGstring url = UnityEditor.AssetDatabase.GetAssetOrScenePath( prefab );Debug.LogError( $"ScratchCard 预设实例化失败: {url}", prefab );
#endifthrow new UnityException( "Prefabs/ScratchCard 预设实例化失败..." );}cardManager = instance.GetComponent<ScratchCardManager>();if( null == cardManager ){#if UNITY_EDITOR || ENABLE_LOGstring url = UnityEditor.AssetDatabase.GetAssetOrScenePath( prefab );Debug.LogError( $"ScratchCard 预设文件不包含ScratchCardManager组件: {url}", prefab );
#endifthrow new UnityException( "Prefabs/ScratchCard 预设文件不包含ScratchCardManager组件..." );}#endregioncardManager.Progress.OnProgress += OnScratchProgress;cardManager.Progress.OnCompleted += OnScratchCompleted;cardManager.RenderType = ScratchCardAsset.Core.ScratchCardRenderType.CanvasRenderer;cardManager.CanvasRendererCard = maskImg;cardManager.MainCamera = Camera.main;cardManager.BrushTexture = brush;}private void OnScratchProgress( float progress ){progressText.text = string.Format( "{0:P}", progress );}private void OnScratchCompleted( float progress ){cardManager.Progress.OnProgress -= OnScratchProgress;cardManager.Progress.OnCompleted -= OnScratchCompleted;progressText.text = string.Format( "{0:P}", progress );progressText.color = Color.green;}
}
本文标签: Unity 图片 涂抹擦除刮刮乐 效果展示 包含 SpriteimageMesh的涂抹效果
版权声明:本文标题:Unity 图片 涂抹擦除刮刮乐 效果展示 包含 Sprite, Image, Mesh的涂抹效果 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1692800051a207737.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论