You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mesh Renderer与Sprite Renderer不遵循sorting order排序问题求解

解决方案

你可以按以下步骤操作实现Sorting Order控制渲染顺序:

  • 首先确保Mesh Renderer的Sorting Order配置生效:Mesh Renderer默认不在Inspector面板暴露Sorting Order字段,你可以选择两种方式配置:
    • 给Mesh Renderer挂载Sorting Group组件,直接在组件上设置Sorting Order为0
    • 运行时通过代码直接赋值MeshRenderer.sortingOrder = 0,参数可正常生效
  • 修改自定义Sprite Shader,在SubShader块中添加ZTest Always配置,强制忽略深度检测,只要Sprite后渲染就会覆盖之前的像素内容,修改后的Shader参数示例:
Lighting Off
Cull Off
ZWrite Off
ZTest Always
BlendOp [_OpColor]
Blend [_SrcFactor] [_DstFactor]
  • 确认两个材质的Render Queue数值完全一致:Unity只会对同Render Queue的物体按Sorting Order排序。内置Mobile Unlit Shader默认Render Queue为2000(Geometry队列),你可以将自定义Sprite Shader的Queue设置为相同数值,例如在SubShader块第一行添加Tags { "Queue" = "Geometry" }
  • 如果不需要多物体灵活排序,也可以直接将Sprite的Render Queue设置为比模型高1,无需修改Sorting Order即可保证Sprite始终在模型前方渲染

内容的提问来源于stack exchange,提问作者Tai Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:36:03