Spine动画如何才能不被UGUI遮挡

总所周知:
3D的物体(包括3D场景内的Sprite)都是3D场景内的,所以它的一定会被UI遮挡住,那下面我们来说点解决方案。
如何让Spine动画或者3D物体不被UI遮住。切能够层级分明:

第一种方法

在做2D界面的时候,默认我们的Canvas的摄像机模式是这样的
Spine动画如何才能不被UGUI遮挡_第1张图片
这样的话,我们如果创建了UI全屏界面就一定会把3D物体遮挡了。
Spine动画如何才能不被UGUI遮挡_第2张图片
OK,那我们切换一下Canvas的Render Mode的模式
Spine动画如何才能不被UGUI遮挡_第3张图片
就会变成下面这样
Spine动画如何才能不被UGUI遮挡_第4张图片
我这里直接分成三层,以便大家理解。
Cube可以被UI遮住也可以遮住UI,这个就只是改变对象与摄像机的远近就可以实现了。
如果你的还是没实现,记得调一下你Cube的 layer(调到你摄像机可以看到的层级)
World Space也是可以的。
在这里插入图片描述

第二种方法(这个是用于Spine动画的)

如果你在用Spine动画了,那你就应该会知道如何导入吧,这个百度很多,看一下就会了,我这里就不说了,
直接进入正题。
Spine动画如何才能不被UGUI遮挡_第5张图片
这两种模式都可以。因为我们现在做的是UI上的Spine动画,默认创建出来的Spine动画是3D场景内的,网上教程教你的基本都是这样。那要如何才能不被UI遮挡呢?请看下面配图。
Spine动画如何才能不被UGUI遮挡_第6张图片
直接在Canvas内创建Spine动画。
下一步(因为是公司项目,所以只能打马赛克了,各位看官看图标就成了)
Spine动画如何才能不被UGUI遮挡_第7张图片
先把参数填完(Animation要选出来,否则没有动画,Loop勾选可以循环方便你测试)
Spine动画如何才能不被UGUI遮挡_第8张图片

这样就可以了(注意不要在运行中进行操作,否则动画也不会动)

第三种办法(通过实时渲染3D场景中的动画)

我这里只说实现的方法步骤
在3D中新建一个摄像机,照射3D场景的物体,,
然后使用Reader Texture渲染3D内的物体,然后显示在UI中(例如RawImage).不过这个比较耗性能。

你可能感兴趣的:(Unity3D,C#)