2016-08-23 47 views
2

如何概述游戏内对象? (为了显示玩家选择的目的)。可以说我有5个哥布林,我只想勾勒出与光标相交的那个。材质,着色器和概述Unity3d中的对象

我的材料和Shader知识非常薄弱,所以也许我不理解正确的,但是......

...我正在使用类似的轮廓着色器见过最答案。

但是这意味着我将不得不为每个可选对象做两个版本的材料?因为只是改变着色器会改变每个其他物体相同的材料?

是不是有更好的方法?

+0

如果您正在寻找一个快速解决方案,Asset Store上有(付费)资产可以做这样的事情:https://www.assetstore.unity3d.com/EN /#!/内容/ 41508。 (不是我的建议,如果这是为了爱好者/教育目的,因为在那种情况下,如果你第一次尝试为自己编写一个解决方案会好很多。) – Serlite

回答

0

我可以给你我的代码。我使用此代码突出显示选定和使用Raycasting的房间中的物体。如果你想使用一个轮廓d

HighlightCode

Highlight Children

:您可以突出显示了一个对象,如果选择其他,旧将被取消......忽略的意见,他们在德国-shader,这里是一个很好的例子:Outlined Diffuse

+0

我有几个问题:1)是否有这种着色器的变体与新的统一5标准着色器一起工作? 2)如果我想要突出显示的对象是由几个较小的对象组成的,该怎么办? (比如身体+武器)不会把轮廓搞乱吗? 3)突出显示时你改变了什么颜色?它是反照色吗? – Zedd

+0

让我们谈谈我的highlightCode,因为我只是使用着色器,而我是这个主题的小菜鸟。 我更新了我的代码以及我在答案中使用的链接。 ** 2)**我用我的highlightCode来突出显示一个有很多其他对象作为子对象的对象。你只需要输入孩子,并改变那里的材料。 (3)**它采用当前对象的颜色,只需添加一个值: 'new Color(oldColor.r + highlightFactor,oldColor.g + highlightFactor,oldColor.b + highlightFactor,oldColor.a); ' ** 1)**我猜这里有很多教程如何使用着色器 – Perazim

+0

我对着色器和材质也很陌生,所以我不明白一件事情?你正在改变的颜色 - 这是基础材料的颜色(反照率)?我使用的许多模型都来自资产商店,它们的基础材料颜色为白色,所以我想我必须将它们变暗一点。 – Zedd