Vì đây là một người chạy vô hạn, tôi cho rằng màu nền của bạn được tạo theo thủ tục. Tôi không chắc chắn về thuật toán của bạn, nhưng hãy lấy đầu ra màu đó và giới hạn phạm vi của nó.
Bạn chỉ có thể loại trừ (các) màu nền tảng của mình dưới dạng tùy chọn màu nền có thể (nhưng nền có thể hơi khác một chút và khó phân biệt). Ví dụ: IF backColor = platformColor THEN GetNextBackgroundColor (). Bạn cũng có thể tạo chức năng 'IsColorSimilar (color1, color2) cho việc này, nhưng khó hơn.
Sử dụng danh sách các màu nền hợp lệ đã biết và chuyển qua chúng.
Có màu sắc 'phong cách' khác nhau cho cả hai. Nền tảng của bạn có thể tươi sáng và vui vẻ, và giới hạn màu nền của bạn thành các màu không bão hòa. Bạn cần tránh xa cách thể hiện màu sắc truyền thống của RBG và chuyển sang một mô hình như HSL.
Một tiện ích bổ sung Unity tuyệt vời để làm việc với màu sắc là ColorTools. Nó có giá $ 10, nhưng đáng giá.https://www.assetstore.unity3d.com/en/#!/content/21966
Nó có các phương thức để tạo màu cho những gì bạn đang tìm kiếm, chẳng hạn như Desaturate () để làm bão hòa màu nền đã tạo của bạn và IsSimilar () để kiểm tra xem hai màu có quá gần nhau không.
Bạn có thể tìm thấy chức năng tương tự khác miễn phí trong các thư viện khác trên mạng với một chút tìm kiếm.