• 关于Unity中渲染顺序问题


    1,Camera是渲染顺序的最大总指挥

    顺序由Camera的Depth值决定,值越小视野范围内的游戏物体越先渲染

    2,layer是对游戏中所有物体的分类别划分

    如UIlayer, waterlayer, 3DModelLayer, smallAssetsLayer, effectLayer等。将不同类的物体划分到不同的层,便于相机拣选,在相机的cullmask中可以选择渲染哪些层,不选择的层则不会渲染。还可以用于射线检测对象的拣选,可以指定只对某些层的对象进行射线检测。

    技术分享

    3,canvas上的层级关系

    canvas默认是屏幕空间的2D对象,在屏幕空间时仅具有sort order属性,当把它设置为世界空间时,sort order属性消失了,变成另外两个属性: sorting layer, order in layer。

    当把画布设置为worldspace后,画布及画布上的UI对象在世界空间默认也是靠Z值来决定渲染顺序的,离相机远的先渲染。当设置了sorting layer后,渲染的次序就由sorting layer来确定了。sorting layer是自定义的标识符,哪个sortinglayer在前(在layer & tags中设置的先后顺序)哪个先渲染。

    order in layer是个数值,是在同一个sorting layer内的细分,sorting layer相同时order in layer的数值越小越先渲染。

    屏幕空间的东西都处于UI层不需要sorting layer,只提供sort order(其实也就是order in layer)。 默认情况下sort oder都是0,此时UI物件按照在hierachy中出现的顺序决定渲染顺序。如果sort order不同时,值越小越先渲染。

    4,2DObject--sprite问题

    特别注意sprite默认是个3D空间的物体,就算把它放到一个屏幕空间的canvas上,它仍然是3D空间的物体,只遵循3D空间的规则:总是会被UI挡住。

    5,关于各个渲染问题节点的物体描述

    同时具有sorting layer, order in layer的对象:sprite, 世界空间的canvas

    仅具有sort order的对象:屏幕空间的canvas

    只具有sorting layer的对象:不存在

    只具有order in layer 的对象:不存在

    没有sorting order这个东西!

    技术分享

     技术分享

    技术分享

  • 相关阅读:
    syslog日志格式解析
    Linux打补丁的一个简单例子
    Linux打补丁的一些问题
    安全漏洞整改解决方案(很不错网络文章)
    Linux系统启动过程
    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
    主机名/etc/hosts文件的作用
    Linux中如何配置IP相关文件
    /bin、/sbin、/usr/bin、/usr/sbin目录Linux执行文档的区别
    日志生成控制文件syslog.conf
  • 原文地址:https://www.cnblogs.com/mrmocha/p/8044771.html
Copyright © 2020-2023  润新知