Unity中Sprite和Texture2D之间的关系。

Texture2D中包含多种类型的贴图,比如normol map,default,sprite 等等。
当我们去切割精灵产生一张或多张资源的时候,就会产生sprite,如图上面这个object的类型就是Texture2D,下面这个object就是sprite了,我们可以看 Selection.objects 和 getType()去确认。

sprite中有记录了Texture的信息,也记录了sprite的信息,所以我们可以通过这些信息去导出精灵。
Texture2D texture2D = new Texture2D((int)sprite.rect.width,(int)sprite.rect.height,s.texture.format,false);
texture2D.setPixels(sprite.texture.getPixels((int)sprite.rect.xMin,(int)sprite.rect.yMin,sprite.width,sprite.height));
sprite.rect.xMin 和 yMin表示了精灵的左下原点,再加上sprite.rect.width 和 sprite.rect.height,就得到了texture2D中这张图中精灵的位置。

你可能感兴趣的:(Unity3D,C#语言,sprite,texture2D)