在unity3d中重叠从PNG的另一部分获取的PNG

Overlap PNG taken from another part of PNG in unity3d

我在 google 网上冲浪很多,花了更多时间,但找不到解决方案。

我尝试将 PNG 转换为 bytes[] 然后附加,但没有找到解决方案。

我有两个 PNG 文件,一个是头发、裙子、手发光等道具,另一个是脱衣服的角色。如何实现显示发光、头发和打扮的角色。简单的我打算拖放,把头发拖到角色头上来显示。

我怎样才能合并 PNG[头发、发光、连衣裙..] 文件的一部分并放到 PNG[头..手,Body...]文件。

我可以拆分不同的 PNG 文件吗,例如单独的头发部分、单独的发光部分、单独的服装部分。

最好的方法是什么 请给出一些link或项目以供参考或从理论上给出一些想法

注意:这仅适用于 2D [PNG 图像],不适用于 3D 角色或材料。

请参考这张图片

你不想合并它们,你想让它们重叠。

public class CharacterSprite:MonoBehaviour{
    public Vector2 position;
    public Item itemValue;
}
public enum Item{ None, Hat, Eyes, Mouth,...}

您的角色将有一个 ItemController:

public class ItemController:MonoBehaviour
{
    private CharacterSprite hat
    public void SetItem(CharacterSprite shSp){
       switch(shSp.itemValue){
          case Item.Hat:
              this.hat.gameObject.SetActive(false);
              this.shSp.gameObject.SetActive(true);
              this.hat = shSp;
              break;
          // other cases
       }
    }
}

此方法将关闭当前的并打开新的。

但是 SpriteRenderer 上的图层是那里的重要图层,因为您会期望 body 为 0,头发为 1,头发上方可能有眼睛,所以 2 然后衣服和帽子为 3(可能是眉毛是在帽子上,不知道),武器应该在它上面看到所以 10(这给介于两者之间的其他物品留出了一些余地)。

我认为这种方法更快、更安全并且可以节省内存,因为您保持了精灵的原样并且只是重叠它们。 您可以使用 SpriteEditor 轻松地从您的图集中制作独特的精灵。你只需要让你的精灵成为多个。