Unity3D ugui和模型粒子的层级管理

本文介绍如何在Unity3D中管理UGUI和模型粒子的层级,通过设置sortingOrder和Canvas来控制UI的绘制次序和事件接受。对于模型和粒子,通过调整Renderer的sortingOrder来实现。同layer的绘制顺序由sortingOrder决定,同sortingOrder则依据节点在场景中的顺序。UI以窗口为单位设定整体order,内部元素利用UGUI规则排序,确保模型和粒子与窗口order一致以正确显示。

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

    直接看代码简单明了:

     

	public class UIDepth : MonoBehaviour
	{
		public int  order;
		public bool isUI = true;

		void Start() 
		{
			if (isUI)
			{
				Canvas canvas = this.GetComponent<Canvas>();
				
				if( canvas == null){
					canvas = this.gameObject.AddComponent<Canvas>();
					this.gameObject.AddComponent<GraphicRaycaster>();
				}
				
				canvas.overrideSorting = true;
				canvas.sortingOrder    = order;
			}
			else
			{
				Renderer[] renders = this.GetComponentsInChildren<Renderer>(true);
				
				foreach (Renderer renderer in renders)
				{
					renderer.sortingOrder = order;
				}
			}
		}
    

    挂载到GameObject上,运行时根据order控制绘制次序。


    如果是针对ui控制次序,我们就动态添加Canvas并且设置sortingOrder和GraphicRaycaster。一个是控制绘制次序,一个是让这个canvas组件可以接受事件。ui默认在default layer的order都是0。


    如果是模

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值