プラットフォームの可視性を背景と区別する


15

背景が常に色を変えている2D無限ランナータイプのゲームがあります。一方、プラットフォームの色は同じままです。このようにして、ある時点でのプラットフォーム(色が背景の色と同じである場合)がプレイヤーに対して「見えない」ようになります。

どうすれば団結でこの問題を創造的、短期的かつ便利に回避できますか?

PS光沢のあるマテリアルを追加しようとしましたが、うまくいきませんでした

回答:


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などのモデルに移行する必要があります。

色を操作するための優れたUnityアドオンはColorToolsです。それは10ドルかかりますが、価値があります。https://www.assetstore.unity3d.com/en/#!/content/21966

生成された背景色の彩度を下げるDesaturate()や、2つの色が一致しすぎていないかどうかを確認するIsSimilar()など、探している色を生成するメソッドがあります。

少し検索するだけで、ネット上の他のライブラリで同様の機能を無料で見つけることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.