首页 > 解决方案 > Unity UI 图像的软阴影

问题描述

在 Unity UI 图像的轮廓周围实现软阴影的最佳方法是什么?我想达到下面的效果:

所需的软阴影

(图片来源:YouTube 视频:Soft Shadow UI || Unity 5

我目前的做法是在主图像后面手动添加一个阴影图像。例如,请参见下面的屏幕截图:

带软阴影的按钮

场景层次

影子检查员

但是,从工作流程的角度来看,我发现这种方法既乏味又混乱,因为每次我想向 UI 图像添加软阴影时,我都必须手动将此阴影游戏对象添加到我的游戏对象层次结构中。

虽然我认为可以稍微改进当前的工作流程,但有更好的方法吗?


请注意,我还尝试了 Unity 的内置阴影效果组件

内置阴影

这是一个阴影,而不是我正在寻找的柔和阴影效果。

但我认为这种方法显示了一个理想的工作流程,它就像将阴影组件添加到带有 Image 的 GameObject 一样简单。

标签: unity3d

解决方案


我会将您拥有的当前阴影拆分为 3 个图像:角、边缘、背景。

然后,我会制作一个脚本,以正确的大小和方向将这些图像实例化到所有角落、边缘和您正在阴影的元素下方(对于背景)。

该脚本还将处理这些参数:

  • float Intensity(实际上改变了 alpha 透明度)
  • 浮动传播(拉伸图像)
  • Vector3位置(简单的翻译,以防你希望你的阴影从你正在阴影的图像中移动)

然后您就可以将它用于任何元素。


推荐阅读