IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]想要UGUI和Spine同时使用时,可以考虑换一种选择

    u010019717发表于 2015-05-22 08:24:11
    love 0

    孙广东 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的层级】,都要重新调整动画。



    
    


沪ICP备19023445号-2号
友情链接