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

从unity3d中PNG的另一部分获取的重叠PNG,unity3d,merge,2d,png,game-engine,Unity3d,Merge,2d,Png,Game Engine,我经常在谷歌上冲浪,花了更多的时间,但找不到解决方案 我尝试将PNG转换为bytes[],然后附加,但没有找到解决方案 我有两个PNG文件,一个是像头发,衣服,手发光等道具充满,。。另一个是裸体角色。如何实现显示容光焕发,头发和打扮的性格。简单地说,我计划拖放,拖动头发并将其放在角色的头部来显示 我如何合并PNG[Hair,Glow,Dress..]文件的一部分,然后放到PNG[Head.Hand,Body…]文件的另一部分 我应该分割不同的PNG文件,比如头发部分,发光部分,衣服部分 这是最好

我经常在谷歌上冲浪,花了更多的时间,但找不到解决方案

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

我有两个PNG文件,一个是像头发,衣服,手发光等道具充满,。。另一个是裸体角色。如何实现显示容光焕发,头发和打扮的性格。简单地说,我计划拖放,拖动头发并将其放在角色的头部来显示

我如何合并PNG[Hair,Glow,Dress..]文件的一部分,然后放到PNG[Head.Hand,Body…]文件的另一部分

我应该分割不同的PNG文件,比如头发部分,发光部分,衣服部分

这是最好的方法,请给一些链接或项目,以供参考或给一些理论上的想法

注意:这仅适用于二维[PNG图像],不适用于三维字符或材质

请参考这张图片
您不想合并它们,而是想使它们重叠

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
       }
    }
}
这种方法将关闭电流,打开新的电流

但是Spirterender上的图层很重要,因为你会认为身体是0,头发是1,可能眼睛在头发上,所以2,然后衣服和帽子是3(可能眉毛在帽子上,dunno),武器应该在上面,所以10(这给了一些其他项目的余地)

我会考虑这种方法更快、更安全和节省内存,因为你保持你的精灵是他们,你只是重叠他们。
您可以使用SpriteEditor轻松地从atlas制作独特的精灵。您只需要将您的精灵设置为多个。

为什么不将其作为精灵导入unity,然后将其拆分为单独的图片呢。我怎么能把雪碧从png的特定部分拿走呢?我是说,头发是从png单独拿走的。现在我把一个角色应用到飞机上,我们只穿连衣裙,9件衣服在那里,它会通过按下“N”键来改变一点零一分。我们应该如何创造精灵,从PNG中取走。看看SistIdEnter,你会惊讶于你能做的任何事情。将包含所有精灵的整个地图册上载到unity,并开始切割更小的部分。您可以定义大小,甚至更好地定义定义定位的轴心点。根据您的指示,我几乎又碰到了一个问题:Cusortexture=GetComponent().sprite.texture;Cursor.SetCursor(Cusortexture,Vector2.zero,CursorMode.Auto)鼠标拖放时,我将光标更改为裙子,但我得到的是整个PNG将更改为光标,而不是特定的裙子。任何帮助@ FAFASEYP,因为纹理是整个事情,而精灵使用UV地图只考虑纹理的对应部分。我不会更改光标,更可能是隐藏/显示光标,而是在鼠标位置后面有一个当前精灵的精灵。所以当你选择一块布料时,你会隐藏它,在鼠标位置启用一个精灵,在它上面有一块选中的布料并跟随鼠标位置。知道了?