SpriteRenderer 与 MeshRenderer 渲染排序问题

博客介绍了Spriterenderer和Mesh renderer的渲染层级设置方法。Spriterenderer可创建Sorting layer指定层级关系,最先创建的在最底层,相同层级可设Order layer数值,值越大越靠前。Mesh renderer无指定layer,可通过代码指定与Spriterenderer的层级顺序。

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

Spriterenderer 设置渲染层级时可以创建 Sorting layer 然后指定层级关系,最先创建的为最先渲染的,放在最底层。相同层级设置Order layer 的数值,数值越大越靠前

 

Mesh renderer 在渲染时没有指定的layer。但是他们的父类都是继承的Renderer。可以通过代码来指定与Spriterenderer 的 层级顺序。

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SetMeshLayer : MonoBehaviour {

    public string layerName;
    public int order;

    private MeshRenderer rend;
    void Awake()
    {
        rend = GetComponent<MeshRenderer>();
        rend.sortingLayerName = layerName;
        rend.sortingOrder = order;
    }

    public void Update()
    {
        if (rend.sortingLayerName != layerName)
            rend.sortingLayerName = layerName;
        if (rend.sortingOrder != order)
            rend.sortingOrder = order;
    }

    public void OnValidate()
    {
        rend = GetComponent<MeshRenderer>();
        rend.sortingLayerName = layerName;
        rend.sortingOrder = order;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值