多个精灵表中的 Unity 9-slice

Posted

技术标签:

【中文标题】多个精灵表中的 Unity 9-slice【英文标题】:Unity 9-slice in multiple sprite sheet 【发布时间】:2016-01-30 15:02:55 【问题描述】:

我在 Unity 5.2 中遇到问题 9-将我的 sprite 切片到 spritesheet 中。 即使我正确设置了边界,Unity 似乎也忽略了 9 切片。我的按钮图形都被拉长了,这是在按钮上设置了边框的精灵表。

如果我尝试对单个精灵文件进行相同的切片,那么它会起作用。

不能在 spritesheet 中进行 9 切片吗?还是我做错了什么。

谢谢!

【问题讨论】:

【参考方案1】:

我的做法是使用脚本将所有精灵信息复制到多纹理精灵表中:

int numberOfItemSlices = rects.Count(); //total number of sprites

List<SpriteMetaData> mapSlices = new List<SpriteMetaData>();

for (int sliceCounter=0; sliceCounter<numberOfItemSlices; sliceCounter++) 
   SpriteMetaData mapSlice0 = new SpriteMetaData();
   mapSlice0.name = textureNames[sliceCounter];
   mapSlice0.rect = rects[sliceCounter];

   if (sprites[sliceCounter] != null && sprites[sliceCounter].border != null) 
     mapSlice0.border = sprites[sliceCounter].border;
   

   mapSlices.Add(mapSlice0);


importer.spritesheet = mapSlices.ToArray();

sprites:您可以在源 sprites 上 AssetDatabase.LoadAssetAtPath&lt;Sprite&gt;() 的 sprites 数组。

importer:新图集的纹理导入器

textureNames:如果需要,您还可以在多精灵纹理中命名您的精灵。

【讨论】:

以上是关于多个精灵表中的 Unity 9-slice的主要内容,如果未能解决你的问题,请参考以下文章

在Unity中使用不带动画的动画制作多个精灵

在 Unity 5 中,为啥精灵表中的某些精灵在精灵中不可见,但在 UI 图像中可以正常工作?

Unity像素艺术多个精灵没有正确切割

Unity 2D精灵

Unity - 如何在运行时更改播放器精灵表?

Unity精灵动画 2D碰撞