SpriteRenderer 与 MeshRenderer的渲染

作者: 云木unity | 来源:发表于2017-10-26 11:01 被阅读206次

解决方案:MeshRender设置sortingLayerName和sortingOrder字段,就可以与SpriteRender一起排序。

文字(MeshRenderer)与图片(SpriteRenderer)的渲染层级.png spriteRenderer.png MeshRender.png

MeshRenderer 和SpriteRenderer都是继承自Renderer;

SpriteRenderer Inspector:

  1. Sorting Layer对应的是Renderer的sortingLayerName 字段

最大优先级,根据Sorting Layer的顺序:越在下面,越后渲染,显示在更前

  1. order in Layer对应的是Renderer的sortingOrder字段;

相同层Sorting Layer,不同Order in Layer(层内顺序):根据Order in Layer-越大,越后渲染,显示在更上层

MeshRender

MeshRender只是Inspector面板上没有这两个字段而已,设置Renderer的sortingLayerName和sortingOrder字段,就可以参与SpriteRender的排序

MeshRender的Sorting Laye(sortingLayerName)默认是Default,order in Layer(sortingOrder)默认是0;

C#: gameObject.GetComponent<MeshRenderer>().sortingOrder = 1;
Lua: levNumText.gameObject:GetComponent("MeshRenderer").sortingOrder = 10

源码、接口

MeshRenderer 继承自Renderer:

//
// 摘要:
//     ///
//     Renders meshes inserted by the MeshFilter or TextMesh.
//     ///
public sealed class MeshRenderer : Renderer

SpriteRenderer也继承自Renderer:

//
// 摘要:
//     ///
//     Renders a Sprite for 2D graphics.
//     ///
[RequireComponent(typeof(Transform))]
public sealed class SpriteRenderer : Renderer

Renderer 类:

//
// 摘要:
//     ///
//     General functionality for all renderers.
//     ///
[RequireComponent(typeof(Transform))]
public class Renderer : Component
{
    ...
    //
    // 摘要:
    //     ///
    //     Name of the Renderer's sorting layer.
    //     ///
    public string sortingLayerName { get; set; }
    //
    // 摘要:
    //     ///
    //     Renderer's order within a sorting layer.
    //     ///
    public int sortingOrder { get; set; }
    ...
}

相关文章

网友评论

    本文标题:SpriteRenderer 与 MeshRenderer的渲染

    本文链接:https://www.haomeiwen.com/subject/ramhpxtx.html