游戏开发28课 cocoscreator 渲染排序说明

news2024/11/23 12:24:12

渲染排序说明

2D 渲染节点排序

2D 渲染节点可分为在 Canvas 下的节点和不在 Canvas 下的节点两种:

  • 在 Canvas 下的节点可参考下文 UI 节点排序 部分的内容。

  • 不在 Canvas 下的节点,用户可选择通过 自定义材质 来开启深度检测实现和 3D 物体的遮挡显示,开启后会按照物体的 Z 轴坐标进行遮挡渲染(可参考范例 2d-rendering-in-3d(GitHub | Gitee)。
    若未开启深度检测,则数据提交依旧会按照节点树顺序提交,也就意味着节点树靠下的节点会后渲染。

UI 节点排序

UI 节点特指在 Canvas 节点下的 UI 节点,这些节点并未开启深度测试,所以节点的混合是严格按照节点树进行排序的。UI 的渲染排序采用的是一个深度优先的排序方式,节点树的排序方式即为最终渲染数据提交的顺序。所以用户可以通过设置节点的 siblingIndex 来改变节点在父节点下的顺序,从而改变渲染顺序。

举个例子:

上图中整体的渲染顺序则是:A -> a1 -> a2 -> B -> b1 -> C,在屏幕上的呈现状态为:C -> b1 -> B -> a2 -> a1 -> A 即 从上往下

setSiblingIndex 的使用说明:此操作是用于变更当前节点在父节点 children 数组中的位置,如果通过脚本在运行时设置,则变更过后的节点树数据不会被序列化。传入的参数如果大于 children 数组的长度,则会设置到数组最后,如果在范围内,则会插入到对应的位置上。所以此操作和节点树的状态实时相关,用户需要知道节点树当前的状态并进行操作才能得到预期的效果。

注意事项

排序是一个很简单的功能,但是最终的呈现却是根据不同平台提供的渲染能力来的。因此,在这里说明一下,如果遇到了 UI 渲染出错,花屏,闪屏等现象,首先要检查的就是场景里所有相机(Camera 和 Canvas)的 ClearFlag,确保 场景里必须有一个相机要执行 Solid_Color 清屏操作

具体如何设置 ClearFlag,可参考以下几种情况:

  • 如果场景中只有一个 UI Canvas 或者 3D Camera,那么 ClearFlag 属性设置为 Solid_Color
  • 如果场景中包含 2D 背景层、3D 场景层、 2D UI 层,则:

    • 2D 背景层:ClearFlag 属性设置为 Solid_Color
    • 3D 场景层:ClearFlag 属性设置为 Depth_Only
    • 2D UI 层:若有模型,ClearFlag 属性设置为 Depth_Only 以避免出现模型闪屏或者穿透的情况。若没有模型,ClearFlag 属性可设置为 Dont_Clear 或 Depth_Only

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/46212.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面试中经常被问到的几个回溯问题

前言:大家好,我是小威,24届毕业生,本篇文章是对最近复刷的回溯相关的算法题进行记录,方便复习使用。 如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。 小威在此先感谢各位大佬啦~~&#x1…

马尔可夫预测案例分析

根据已经有数据进行预测的研究方法有很多,包括arima模型、指数平滑法、灰色预测等,本文针对马尔可夫预测进行阐述。比如研究中国移动,中国联通和中国电信三家运营商,他们的用户可以互相携号转网,已经当前3家运营商的市…

开发者友好的Linux常见命令整理

系统本身 uname -a # 查看内核/操作系统/CPU信息 cat /etc/redhat-release 查看服务器版本 cat /proc/cpuinfo # 查看CPU信息 hostname # 查看计算机名 lspci -tv # 列出所有PCI设备 lsusb -tv # 列出所有USB设备 lsmod # 列出加载的内核模块 env # 查看环境变量 查看…

领域驱动设计-领域建模

领域建模 领域建模是针对问题空间的战术求解的过程:观察真实世界的业务需求,对业务知识进行提炼和转换,排除技术因素对建模产生的影响,一切围绕着业务需求而来。同时满足未来的需求变更与产品维护 快速建模法:名次动…

通信原理技术复习重点知识

1.感知控制层通信的目的和特点: 目的:将各种传感设备(数据采集设备以及相关的控制设备)所感知的信息在较短的通信距离内传送到信息汇聚系统,并由该系统传送到网络传输层 特点:传输距离近,传输方…

使用 SAP WebIDE 将 SAP UI5 应用部署到 ABAP 系统时遇到的关于传输请求的错误

有朋友遇到一个在 webide 里部署 SAP UI5 应用到 ABAP Repository 里时出错的问题: 错误消息: Failed to get transports for the selected package. Request POST /webidedispatcher/destinations/LND500/sap/bc/adt/cts/transportchecks failed: Forbi…

【数学】仿射变换(续1)

在 这篇文章 中我介绍了椭圆中的圆幂定理。其中,椭圆中的“相交弦定理”为 PA⋅PBPC⋅PDrAB2rCD2\frac{PA\cdot PB}{PC \cdot PD}\frac{r_{AB}^2}{r_{CD}^2}PC⋅PDPA⋅PB​rCD2​rAB2​​ 本来以为它是从来见不到的东西 然而 请看此题: 以下给出两种常…

传奇登录器打不开的四种原因

最近很多传奇玩家或者GM都遇到了传奇登陆器打不开,没反应,提示无法访问指定设备等问题,导致很多游戏没有办法玩,让玩家心情沮丧,作为GM,那么就更伤心了,很多玩家进不来游戏,开服数千…

Vue3框架中路由的使用和局部刷新的功能(第十一课)

使用vue-router的步骤:p第一步:创建路由需要映射的组件(打算显示的页面);p第二步:通过createRouter创建路由对象,并且传入routes和history模式;配置路由映射: 组件和路径映射关系的routes数组&a…

linux杀毒软件clamav安装

clamav 简介 ClamAV is an open source (GPLv2) anti-virus toolkit, designed especially for e-mail scanning on mail gateways. It provides a number of utilities including a flexible and scalable multi-threaded daemon, a command line scanner and advanced tool …

Git的基本使用

Git 1.Git基础知识 1.1Git简介 更新的历史保存在Gitee中不会丢失的。 1.简介:Git是一个分布式版本管理系统,是为了更好地管理Linux内核开发而创立的。 Git可以在任何时间点,把文档的状态作为更新记录保存起来。因此可以把编辑过的文档复…

AI强势入场,成就史上最快足球

众所周知,卡塔尔是全球最富裕的国度之一,是世界第一大液化天然气生成和出口国。丰富的石油资源,几乎让每一名原住民从出生之日起就实现财务自由,人均GDP高达6万多美元,钞能力毋庸置疑。 2022年世界杯正是在这片富饶的土…

图论 - 拓扑排序

有向图的拓扑序列 给定一个 nnn 个点 mmm 条边的有向图,点的编号是 111 到 nnn,图中可能存在重边和自环。 请输出任意一个该有向图的拓扑序列,如果拓扑序列不存在,则输出 −1。 若一个由图中所有点构成的序列 AAA 满足&#xf…

调试-一些奇怪的现象-以及const的作用

今天给大家看一些奇怪的例子&#xff0c;我们用调试来看看这到底是什么情况&#xff0c;本次选取环境为vs2019 话不多说&#xff0c;我们直接来看例子 #include <stdio.h>int main() {int i 0;int arr[10] { 0 };for (i 0; i < 12; i){arr[i] 0;printf("he…

压缩包加密、解密

压缩包文件大家都经常使用&#xff0c;经常用来压缩文件之后再转发给别人&#xff0c;网上下载的软件&#xff0c;有时候也是压缩包形式下载下来&#xff0c;解压之后才是软件。相信大家一定也遇到过加密的压缩包文件。今天和大家分享如何加密压缩包&#xff0c;以及如何解密压…

114.(leaflet篇)leaflet空间判断-点与圆的空间关系

听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>

【SpringBoot】对于yaml的详细学习和三种属性赋值的实战详解

一.yaml详细讲解 1.1 什么是yaml&#xff1f; YAML是一种数据序列化语言&#xff0c;通常用于编写配置文件。业界对YAML有不同的看法。有些人会说YAML代表另一种标记语言。其他人认为“YAML不是标记语言”&#xff08;“YAML并非标记语言”&#xff09;。“YAML”只是这句话的…

CentOS中使用Docker部署带postgis的postgresql

场景 CentOS中使用Docker来部署Postgresql&#xff1a; CentOS中使用Docker来部署Postgresql_霸道流氓气质的博客-CSDN博客 上面安装的postgresql还需自行安装postgis插件&#xff0c;是否可以直接安装带postgis插件的postgresql。 注&#xff1a; 博客&#xff1a;https:…

RKMEDIA使用简介

瑞芯微&#xff08;rockchip&#xff09;芯片现在嵌入式行业使用的逐渐多了&#xff0c;本栏主要介绍rv1126/rv1109上的媒体框架 rkmedia的使用以及常遇到的问题。 希望可以给各位使用rkmedia的小伙伴一些帮助&#xff0c;同时也是自己工作的记录。 rkmedia的手册在sdk目录下/…

windows10系统安装nvm切换电脑node版本

介绍 nvm 是 node version manager&#xff08;node 版本管理工具&#xff09;的缩写&#xff0c;是一个命令行工具&#xff0c;用于管理和切换到不同版本的 node.js。 不同的项目可能需要不同版本的 node.js 和 npm&#xff08;node 包管理器&#xff09;&#xff0c;例如&a…