Bu sonsuz bir koşucu olduğundan, arka plan renklerinizin prosedürel olarak oluşturulduğunu varsayıyorum. Algoritmanızdan emin değilim, ama o renk çıktısını alın ve aralığını sınırlayın.
Platform renklerinizi olası bir arka plan rengi seçeneği olarak hariç tutabilirsiniz (ancak arka plan biraz farklı ve ayırt edilmesi zor olabilir). Örneğin: IF backColor = platformColor THEN GetNextBackgroundColor (). Bunun için bir 'IsColorSlike (color1, color2)' işlevi de oluşturabilirsiniz, ancak daha zordur.
Bilinen geçerli arka plan renklerinin bir listesini kullanın ve bunlar arasında geçiş yapın.
Her ikisi için de farklı renk 'stilleri' var. Platformunuz parlak ve neşeli olabilir ve arka plan renklerinizi doygunluğu azaltılmış renklerle sınırlayabilir. Renkleri temsil eden geleneksel RBG yolundan uzaklaşmanız ve HSL gibi bir modele geçmeniz gerekir.
Renklerle çalışmak için harika bir Unity eklentisi ColorTools'tur. 10 $ maliyeti, ama buna değer. https://www.assetstore.unity3d.com/en/#!/content/21966
Aradığınız arka plan rengini desaturatlamak için Desaturate () ve iki rengin birbirine çok yakın olup olmadığını kontrol etmek için aradığınız renkler için renk oluşturma yöntemleri vardır.
Biraz arama ile internetteki diğer kütüphanelerde diğer benzer işlevleri ücretsiz olarak bulabilirsiniz.