大家好!我正在开发一个Unity项目,项目中我想在游戏中自动更换角色精灵。

而不是为每种可能的变化创建一个单独的精灵,我尝试使用调色板替换着色器。

这个想法很简单:着色器使用两个8x1调色板纹理。对于每个精灵像素,它会检查颜色是否匹配基准调色板中的颜色。如果匹配,它会用目标调色板中相同位置的颜色来替换它。

类似这样:

对于每个像素:
    对于每种颜色在基准调色板中:
        如果像素颜色匹配基准调色板中的颜色[i]:
            像素颜色 = 目标调色板中的颜色[i]

它是工作的,但是这也是我第一次使用着色器,所以我不确定这个方法是否是好的。

有没有人以前使用过类似的方法?使用着色器来解决Unity中的精灵重色是不是一个好的解决方案?还是有更好的方法来处理这个问题?