배경이 끊임없이 색상을 변경하는 2D 무한 러너 유형 게임이 있습니다. 한편 플랫폼의 색상은 동일하게 유지됩니다. 이런 식으로 플랫폼이 일정 시점 (색상이 배경색과 같을 때)이 플레이어에게 보이지 않게됩니다.
이 문제를 어떻게 단결하고 창의적이고 짧고 확실하게 피할 수 있습니까?
추신 : 나는 그것에 광택 소재를 추가하려고했지만 작동하지 않았습니다 .
배경이 끊임없이 색상을 변경하는 2D 무한 러너 유형 게임이 있습니다. 한편 플랫폼의 색상은 동일하게 유지됩니다. 이런 식으로 플랫폼이 일정 시점 (색상이 배경색과 같을 때)이 플레이어에게 보이지 않게됩니다.
이 문제를 어떻게 단결하고 창의적이고 짧고 확실하게 피할 수 있습니까?
추신 : 나는 그것에 광택 소재를 추가하려고했지만 작동하지 않았습니다 .
답변:
이것은 무한 러너이므로 배경색이 절차 적으로 생성된다고 가정합니다. 알고리즘을 잘 모르겠지만 해당 색상 출력을 사용하여 범위를 제한하십시오.
가능한 배경색 옵션으로 플랫폼 색상을 제외시킬 수 있습니다 (그러나 배경이 약간 다르고 구분하기 어려울 수 있음). 예 : IF backColor = platformColor THEN GetNextBackgroundColor (). 이를 위해 'IsColorSimilar (color1, color2)'함수를 만들 수도 있지만 더 어렵습니다.
알려진 유효한 배경색 목록을 사용하고 순환하십시오.
두 가지 색의 '스타일'이 다릅니다. 플랫폼이 밝고 밝을 수 있으며 배경색을 불포화 색으로 제한합니다. 색상을 나타내는 전통적인 RBG 방식에서 벗어나 HSL과 같은 모델로 이동해야합니다.
색상 작업을위한 훌륭한 Unity 애드온은 ColorTools입니다. 비용은 $ 10이지만 그만한 가치가 있습니다. https://www.assetstore.unity3d.com/en/#!/content/21966
생성 된 배경색의 채도를 낮추기위한 Desaturate () 및 두 색이 서로 너무 일치하는지 확인하는 IsSimilar ()와 같이 찾고자하는 색상을 생성하는 메소드가 있습니다.
약간의 검색으로 인터넷의 다른 라이브러리에서 다른 유사한 기능을 무료로 찾을 수 있습니다.