我想实现Unity拥有的功能:http://docs.unity3d.com/Manual/SpriteEditor.html
“将切片类型设置为自动,编辑器将尝试通过透明度猜测精灵元素的边界”,实现此内容的最简单方法是什么?
答案 0 :(得分:4)
你必须找到精灵的边界框。为此,您必须将像素标记为已使用且尚未使用。
在伪代码中:
set every transparent pixel as used
// now you should have separate sprites marked as unused
while at least one pixel not used:
position=find first unused pixel
bounds=flood fill from position as used, saving bounds of the fill
if bounds intersect any previous found sprite position:
throw error
save bounds as a sprite position
示例(sprite source):
首先你有一张透明背景的精灵表:
然后填写背景:
然后找到第一个未使用的像素:
然后洪水填充精灵,你的洪水填充的边界是你的精灵的界限。
您可能想要修改第一步,以便为精灵提供边距 - 这样分离效果会更好,并且您不会留下任何悬空像素。