Unity AR Foundation:如何调整渲染层级(Render Order)实现模型叠放
控制Unity AR Foundation中模型渲染层级的方法
在AR Foundation场景里让一个模型渲染在另一个之上,核心是控制渲染优先级,常用这几种直接的方法:
调整Renderer组件的Sorting Layer与Order in Layer
选中需要上层显示的模型,找到它的Renderer组件(比如MeshRenderer、SkinnedMeshRenderer),在Sorting Layer下拉菜单里可以选择自定义层级(没有的话去Project Settings→Tags and Layers→Sorting Layers添加),优先级高的层级会覆盖低层级。如果两个模型在同一Sorting Layer,就调大Order in Layer的数值,数值越大的渲染越靠后,也就显示在更上层。修改材质的Render Queue
打开上层模型的材质,在Advanced选项里找到Render Queue参数。Unity默认的渲染队列:不透明物体是2000,透明物体是3000。把上层模型材质的Render Queue设为比下层模型更大的数值(比如下层是2000,上层设2001),就能让它后渲染并显示在上面。注意透明材质要保持在3000以上的队列区间,避免和不透明物体的渲染逻辑冲突。脚本动态控制(适合交互场景)
如果需要在运行时切换渲染层级,可以用代码修改上述参数:// 修改Sorting Order GetComponent<MeshRenderer>().sortingOrder = 1; // 修改Render Queue GetComponent<MeshRenderer>().material.renderQueue = 2001;
内容的提问来源于stack exchange,提问作者gentle_johnny
相关产品推荐
相关产品推荐

