孙广东 2015.5.21
【转载请注明出处http://blog.csdn.net/u010019717,否则不予转载!】
最近在做2D游戏, UGUI、U5是未来,所以直接使用了这两个。
没有UGUI的时候,开发2D游戏的一个选择就是使用:NGUI插件,当然还有其他的选择了
UGUI 产生和NGUI有很大的关系。作者也是同一个。
所以NGUI能做的,UGUI应该都可以做到。
现在的问题是,支持NGUI的插件,不一定很好的支持UGUI。
游戏中肯定有很多的动画的,有些是Tween补间动画可以实现,有些则要使用特效。
2D角色运动动画的一个简单实现是使用序列帧,肯定很费内存的。 还有就是类似的Mesh动画【用CPU计算来换内存】。
这样的插件就有 spine 和 Puppet2D
ugui的ui是按照Hierarchy面板的顺序,按照前后层级关系排列。
spine的对象放到canvas中,则无法插入到两个ugui图片中间。【如果他们的】 layer也是UI的话,
对象就变得很小了, 最主要的问题是 Transform 和 Rect Transform的区别
如果层级不同,那就是设置
unity2D游戏使用Nav2d的肯定知道, unity的Sprite精灵都是,SpriteRenderer组件。
可以在这里进行设置 Sorting Layer 的内容:
然后在层级内部使用 Order in Layer 参数。
设置Spine动画的MeshRenderer 的 sortingOrder。
这种方法的解决,只能让Spine动画 在Canvas画布后面,或者画布前面。
使用了就知道,如果要求较多的话, 想让Spine动画 可以在 UI的任一个前或后显示。 就不好控制, 可以使用多个 Canvas画布。层级分的好的话就可以了。 个人觉得很破坏UGUI的层级关系,不灵活。
回到正题,换一种选择就是使用Unity的有原生的制作动画的方式来实现。
角色是使用UGUI拼出来的:
然后制作动画:
OK, 角色的动画就不说了, 再来看看层级吧:
其中的panel是 灰白色的。 角色能看到, Image就是前景的有一个草坪。
然后在调整一些层级:
在调整一下:
运行就可以看到默认的Idle动画了。 这里我也 掩饰不了效果。 动画和层级都完美解决。
我想主要的问题就是使用Unity自身工具制作动画了, 而且如果角色的某个部位要发生变化【就是Transform的层级】,都要重新调整动画。
原文地址:http://blog.csdn.net/u010019717/article/details/45890205