Diferencie a visibilidade da plataforma do plano de fundo

15

Eu tenho um jogo tipo corredor 2d infinito cujo fundo está mudando de cor constantemente. Enquanto isso, a cor das plataformas permanece a mesma. Dessa forma, as plataformas em algum momento (quando a cor é igual à do fundo) tornam-se "invisíveis" para o jogador.

Como posso evitar de forma criativa, rápida e conveniente, esse problema com a unidade?

PS: Tentei adicionar material brilhante a ele, mas não funcionou .

ZenVentzi
fonte

Respostas:

20

Truque antigo - novo visual:

Exemplo 1

Adicione uma camada de cor às suas plataformas que ajudará a manter essa linha definida.

Exemplo 2

Sua solução de linha ou de outros gráficos pode variar, mas o princípio é o mesmo - a cor que você escolher pode ser tão sutil ou forte quanto você precisa.

Tom 'Blue' Piddock
fonte
A resposta mais bonita de toda a minha vida. Eu diria que a vida aqui, mas todos sabemos que isso seria uma mentira. i1.memy.pl/obrazki/8f68408024_no_life.jpg
ZenVentzi
1

Como esse é um corredor infinito, presumo que as cores de fundo sejam geradas proceduralmente. Não tenho certeza do seu algoritmo, mas pegue essa saída de cor e limite seu alcance.

  1. Você pode simplesmente excluir as cores da sua plataforma como uma possível opção de cor de plano de fundo (mas o plano de fundo pode ser um pouco diferente e difícil de diferenciar). Por exemplo: SE backColor = platformColor THEN GetNextBackgroundColor (). Você pode criar uma função 'IsColorSimilar (color1, color2)' para isso também, mas mais difícil.

  2. Use uma lista de cores de plano de fundo válidas conhecidas e percorra-as.

  3. Tem 'estilos' de cores diferentes para ambos. Sua plataforma pode ser brilhante e alegre e limitar as cores do plano de fundo a cores dessaturadas. Você precisa se afastar da maneira tradicional de representar cores do RBG e mudar para um modelo como HSL.

Um ótimo complemento do Unity para trabalhar com cores é o ColorTools. Custa US $ 10, mas vale a pena. https://www.assetstore.unity3d.com/en/#!/content/21966

Possui métodos para gerar cores para o que você está procurando, como Desaturate () para dessaturar sua cor de plano de fundo gerada e IsSimilar () para verificar se as duas cores estão muito próximas uma da outra.

Você pode encontrar outras funcionalidades semelhantes gratuitamente em outras bibliotecas da rede com um pouco de pesquisa.

Doug.McFarlane
fonte