我设置了这个的背景,我花了不少时间,试图让自定义着色器和Unity的UI遮罩(尤其是在ScrolleRect内部)一起工作。一般来说,这通常是一个非常折磨人的过程。

最终,我选择了将默认的UI着色器改为采样Additive混合(BlendSrcAlpha One),然后将噪音/条纹纹理传入并使用Time.time + mouse position来实现视差效果。

令人烦恼的是,调整遮罩时很费劲。关键在于把所有的模板缓存属性保留在默认着色器中的状态,但仍然可以通过Canvas正常遮掩。

总的来说,我很烦躁,总是要重写这个脚本以及拖放物理行为,每次尝试不同效果。因此,我将所有东西收集进了一个超级轻量的框架(<1MB)。如果你想避免这一痛苦,直接从Unity Asset Store获取就好了:[CraftCards Framework](https://assetstore.unity.com/packages/templates/systems/craftcards-ultimate-card-framework-vfx-358274#reviews)

如果你试图建立类似系统却因为Canvas的奇怪行为而卡住,不妨问问我。