Unity2D——如何使Sprite显示在UGUI前面

本文介绍如何在Unity中调整UI与2D对象的渲染层级,通过创建UICamera并调整其深度,改变Canvas的RenderMode,指定RenderCamera,实现Sprite在UI前显示。适用于2D游戏背景制作与UGUI结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设已有Sprite S1和Imgae I1,运行结果如图;

位于UGUI Canvas对象下的I1遮挡住了作为Sprite的S1,假设我们只想将Image作为背景,则需要将I1置于S1后方;

 

第一步

新建一个Camera,命名为UICamera,并更改Projection为Orthographic(正交相机),并将Depth(相机深度)改为1;

同时记得将MainCamera的Clear Flags从Skybox改为Don't Clear,否则Skybox的颜色会覆盖UICamera的渲染画面;

 

第二步

将Canvas的Render Mode由Screen Space-Overlay改为Screen Space-Camera;

Screen Space-Overlay的作用是让Canvas永远前置在所有对象之前,不会被遮挡,可以用作制作血条、聊天框等固定前置的部件;

Screen Space-Camera的作用是将Canvas绑定一个摄像机,可以根据摄像机的Depth(相机深度)来调整和其他摄像机之间的显示次序,这里用到的原理就是这个;

 

第三步

指定UICamera为Canvas的Render Camera;

 

第四步

点击运行,可以看见Sprite已经在UI前面了。

 

原理:

Unity2D模式下的基本相机运行原理如图所示,面对用户的方向为Z轴,用户的视线方向是从Z轴负方向到正方向。原来的MainCamera深度为0,意即渲染画面位于Z轴坐标0点处,而UICamera的相机深度为1,意即渲染画面位于Z坐标1点处,从而实现MainCamera渲染的画面覆盖了UICamera渲染的画面。

功能作用在于可以制作2D游戏的时候用Image对象来制作游戏背景,以及可以用Sprite对象结合UGUI制作滚动背包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值