使平台的可见性与背景不同


15

我有一个2D无限亚军类型的游戏,背景不断变化其颜色。同时,平台的颜色保持不变。这样,平台在某些时候(当它们的颜色与背景颜色相同时)对播放器“不可见”。

我该如何创造性,短期而又方便地避免团结问题?

PS我已经尝试添加有光泽的材料,但它没有工作

Answers:


20

旧技巧-新外观:

例子1

在您的平台上添加一层颜色,以帮助保持定义的线条。

例子2

您对线条或其他图形的解决方案可能会有所不同,但原理是相同的-您选择的颜色可以根据需要是微妙的或鲜明的。


这是我整个过程中最漂亮的答案。我会说这里的生活,但是我们都知道那是骗人的。i1.memy.pl/obrazki/8f68408024_no_life.jpg
ZenVentzi

1

由于这是一个无限的跑步者,因此我假设您的背景色是按照程序生成的。我不确定您的算法,但可以使用该颜色输出并限制其范围。

  1. 您可以简单地将平台颜色排除为可能的背景颜色选项(但背景可能略有不同并且很难区分)。例如:IF backColor = platformColor THEN GetNextBackgroundColor()。您也可以为此创建一个'IsColorSimilar(color1,color2)'函数,但是更加困难。

  2. 使用已知有效背景色的列表,并在它们之间循环。

  3. 两者都有不同的颜色“样式”。您的平台可能会明亮开朗,并将您的背景颜色限制为不饱和的颜色。您需要摆脱传统的表示颜色的RBG方式,而要转向诸如HSL之类的模型。

ColorTools是用于处理颜色的出色Unity附加组件。它的价格为10美元,但值得。https://www.assetstore.unity3d.com/zh/#!/content/21966

它具有生成所需颜色的方法,例如Desaturate()用于使生成的背景颜色去饱和,而IsSimilar()则用于检查两种颜色是否过于接近。

您可以通过搜索在网上的其他库中免费找到其他类似的功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.