用于2d精灵的Unity3d轮廓高光

用于2d精灵的Unity3d轮廓高光,unity3d,shader,sprite,Unity3d,Shader,Sprite,我想在鼠标上方实现轮廓突出显示,如下图所示: 内置Unity3d用户界面元素有一个名为Outline和Shadow的组件,但它们仅适用于用户界面,而不适用于spriteender。第一个想法是创建第二个背景突出显示的精灵,并使其能够鼠标悬停,但我认为这种方法不好。正如埃弗茨(和我)在评论中提到的那样 简单地制作“辉光精灵”并打开和关闭它们并没有什么错。这在很多大型游戏中都是可以做到的:这很好 确实,您可以编写一个着色器来实现这一点,但实际上这将是“糟糕的工程”——对于如此简单的需求来说完全没有

我想在
鼠标上方实现
轮廓突出显示
,如下图所示:

内置Unity3d用户界面元素有一个名为
Outline
Shadow
的组件,但它们仅适用于用户界面,而不适用于
spriteender
。第一个想法是创建第二个背景突出显示的精灵,并使其能够
鼠标悬停
,但我认为这种方法不好。

正如埃弗茨(和我)在评论中提到的那样

简单地制作“辉光精灵”并打开和关闭它们并没有什么错。这在很多大型游戏中都是可以做到的:这很好

确实,您可以编写一个着色器来实现这一点,但实际上这将是“糟糕的工程”——对于如此简单的需求来说完全没有必要。(更清楚的是,制作定制精灵显然更好。)

现在,这给我们带来了一个关于统一工程的重要观点-

在统一工作中,使用现有资产是至关重要的。 这里有几个突出的例子。比如NatCam和Edy的车辆系统。你只是-字面上-不能在游戏中使用相机,除非你使用“NatCam”;唯一的选择是毫无意义地花一年时间自己建造NatCam

在这种情况下,有许多好的“光晕着色器”可用

享受吧


我想你想错了。你所描述的方法是最简单也是最合适的。另一种方法是在着色器级别上工作,您可以尝试使用卡通着色器。事实上,简单地制作“辉光精灵”并打开和关闭它们并没有什么错。这就是AAA方法!:)的确,你可以编写一个着色器来实现这一点,但实际上这是一个糟糕的工程——完全没有必要。