【Unity实战】UGUI和Z轴排序那点事儿
如果读者是从Unity 4.x时代过来的,可能都用过NGUI这个插件(后来也是土匪成了正规军),NGUI一大特点是可以靠transform位移的Z值进行遮挡排序,然而这个事情在UGUI成了难题(Sorting Layer、Inspector顺序等因素综合作为遮挡前置条件)。

如图所示,现在我们有三个Image,白红蓝。在Inspector中的顺序如下:

如果我们尝试让白色遮挡红色,按照NGUI的做法,我们把红色的Z值改为50,然而这种做法在UGUI直接现场寄。


其中一种解决办法是改一下Inspector顺序。

至于如果想动态地调整顺序,你可以参考如下代码:
// UIPosZSorter
// Originally written by AStar
// Modified and commented by Shepherd Zhu
// Sort the RectTransform by Z Pos.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class UIPosZSorter : MonoBehaviour
{private List<Transform> m_Transforms; // 存储子物体的Transform组件private void Awake(){m_Transforms = new List<Transform>(); // 初始化m_Transforms列表}private void Update(){// 清空m_Transforms列表m_Transforms.Clear();// 遍历所有子物体,将其Transform组件添加到m_Transforms列表中for (int i = 0; i < transform.childCount; i++){m_Transforms.Add(transform.GetChild(i));}// 根据子物体的localPosition.z属性进行排序m_Transforms.Sort((a, b) => b.localPosition.z.CompareTo(a.localPosition.z))// 根据排序后的顺序,设置子物体的SiblingIndexfor (int i = 0; i < m_Transforms.Count; i++){m_Transforms[i].SetSiblingIndex(i);}}
}
效果如图:

相关文章:
【Unity实战】UGUI和Z轴排序那点事儿
如果读者是从Unity 4.x时代过来的,可能都用过NGUI这个插件(后来也是土匪成了正规军),NGUI一大特点是可以靠transform位移的Z值进行遮挡排序,然而这个事情在UGUI成了难题(Sorting Layer、Inspector顺序等因素…...
Vue/React 前端高频面试
说一说vue钩子函数 钩子函数是Vue实例创建和销毁过程中自动执行的函数。按照组件生命周期的过程分为:挂载阶段 -> 更新阶段 -> 销毁阶段。 每个阶段对应的钩子函数分别为:挂载阶段(beforeCreate,created,befor…...
[技巧]Arcgis之图斑四至范围批量计算
ArcGIS图层(点、线、面三类图形)四至范围计算 例外一篇介绍:[技巧]Arcgis之图斑四至点批量计算 说明:如下图画出来的框(范围标记不是很准) ,图斑的x最大和x最小,y最大,…...
C/C++工程师面试题(STL篇)
STL 中有哪些常见的容器 STL 中容器分为顺序容器、关联式容器、容器适配器三种类型,三种类型容器特性分别如下: 1. 顺序容器 容器并非排序的,元素的插入位置同元素的值无关,包含 vector、deque、list vector:动态数组…...
Effective Programming 学习笔记
1 基本语句 1.1 断言 在南溪看来,断言可以用来有效地确定编程中当前代码运行的前置条件,尤其是以下情况: 第三方工具库对输入数据的依赖,例如:minitouch库对Android版本的要求...
【MGR】MySQL Group Replication 背景
目录 17.1 Group Replication Background 17.1.1 Replication Technologies 17.1.1.1 Primary-Secondary Replication 17.1.1.2 Group Replication 17.1.2 Group Replication Use Cases 17.1.2.1 Examples of Use Case Scenarios 17.1.3 Group Replication Details 17.1…...
300分钟吃透分布式缓存-17讲:如何理解、选择并使用Redis的核心数据类型?
Redis 数据类型 首先,来看一下 Redis 的核心数据类型。Redis 有 8 种核心数据类型,分别是 : & string 字符串类型; & list 列表类型; & set 集合类型; & sorted set 有序集合类型&…...
思科网络设备监控
思科是 IT 行业的先驱之一,提供从交换机到刀片服务器的各种设备,以满足中小企业和企业的各种 IT 管理需求。管理充满思科的 IT 车间涉及许多管理挑战,例如监控可用性和性能、管理配置更改、存档防火墙日志、排除带宽问题等等,这需…...
深入剖析k8s-控制器思想
引言 本文是《深入剖析Kubernetes》学习笔记——《深入剖析Kubernetes》 正文 控制器都遵循K8s的项目中一个通用的编排模式——控制循环 for {实际状态 : 获取集群中对象X的实际状态期望状态 : 获取集群中对象X的期望状态if 实际状态 期望状态 {// do nothing} else {执行…...
go并发模式之----使用时顺序模式
常见模式之二:使用时顺序模式 定义 顾名思义,起初goroutine不管是怎么个先后顺序,等到要使用的时候,需要按照一定的顺序来,也被称为未来使用模式 使用场景 每个goroutine函数都比较独立,不可通过参数循环…...
[动态规划]---part1
前言 作者:小蜗牛向前冲 专栏:小蜗牛算法之路 专栏介绍:"蜗牛之道,攀登大厂高峰,让我们携手学习算法。在这个专栏中,将涵盖动态规划、贪心算法、回溯等高阶技巧,不定期为你奉上基础数据结构…...
java 关于 Object 类中的 wait 和 notify 方法。(生产者和消费者模式!)
4、关于 Object 类中的 wait 和 notify 方法。(生产者和消费者模式!) 第一:wait 和 notify 方法不是线程对象的方法,是 java 中任何一个 java 对象都有的方法,因为这两个方法是 Object 类中自带的。 wait 方…...
YOLOv8姿态估计实战:训练自己的数据集
课程链接:https://edu.csdn.net/course/detail/39355 YOLOv8 基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 同时支持目标检测和姿态估计任务。 本课程以熊猫姿态估计为例,将手把手地教大家使用C…...
【海贼王的数据航海:利用数据结构成为数据海洋的霸主】链表—双向链表
目录 往期 1 -> 带头双向循环链表(双链表) 1.1 -> 接口声明 1.2 -> 接口实现 1.2.1 -> 双向链表初始化 1.2.2 -> 动态申请一个结点 1.2.3 -> 双向链表销毁 1.2.4 -> 双向链表打印 1.2.5 -> 双向链表判空 1.2.6 -> 双向链表尾插 1.2.7 -&…...
做测试还是测试开发,选职业要慎重!
【软件测试面试突击班】2024吃透软件测试面试最全八股文攻略教程,一周学完让你面试通过率提高90%!(自动化测试) 突然发现好像挺多人想投测开和测试的,很多人面试的时候也会被问到这几个职位的区别,然后有测…...
Java面试题总结200道(二)
26、简述Spring中Bean的生命周期? 在原生的java环境中,一个新的对象的产生是我们用new()的方式产生出来的。在Spring的IOC容器中,将这一部分的工作帮我们完成了(Bean对象的管理)。既然是对象,就存在生命周期,也就是作用…...
面试数据库篇(mysql)- 03MYSQL支持的存储引擎有哪些, 有什么区别
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。 MySQL体系结构 连接层服务层引擎层存储层 存储引擎特点 InnoDB MYSQL支持的存储引擎有哪些, 有什么区别 ? my…...
MySQL深入——25
Join语句如何优化? Join语句的两种算法,分别为Index Nested-Loop Join和Block Nested-Loop Join NLJ在大表Join当中还不错,但BNL在大表join时性能就差很多,很耗CPU资源。 如何优化这两个算法 创建t1,t2算法,在t1中…...
Docker运行时安全之道: 保障容器环境的安全性
引言 Docker作为容器化技术的领军者,为应用部署提供了灵活性和便捷性。然而,在享受这些优势的同时,必须重视Docker运行时的安全性。本文将深入研究一些关键的Docker运行时安全策略,以确保你的容器环境在生产中得到有效的保护。 1. 使用最小特权原则 保持容器以最小权限运…...
前后端分离项目Docker部署指南(上)
目录 前言 一.搭建局域网 1.搭建net-ry局域网,用于部署若依项目 2.注意点 二.安装redis 创建目录 将容器进行挂载 编辑 测试是否安装成功 编辑 三. 安装MySQL 创建文件夹 上传配置文件并且修改 .启动MySQL容器服务 充许远程连接 四.部署后端 使用…...
老旧Mac终极重生指南:OpenCore Legacy Patcher完整教程
老旧Mac终极重生指南:OpenCore Legacy Patcher完整教程 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款强大的开源…...
SystemVerilog断言(SVA)避坑指南:从‘能用’到‘好用’,我踩过的那些Glue Logic和变量延时坑
SystemVerilog断言进阶实战:破解Glue Logic与动态延时的工程困局 当你的SVA断言从实验室demo走向真实芯片验证时,总会遇到这样的时刻:精心编写的断言在仿真中突然失效,或是让仿真速度下降了30%,又或是变成团队里没人敢…...
OFA-Image-Caption模型解析:从卷积神经网络到跨模态理解的架构揭秘
OFA-Image-Caption模型解析:从卷积神经网络到跨模态理解的架构揭秘 最近几年,AI在“看图说话”这件事上进步飞快。你可能见过一些工具,上传一张照片,它就能自动生成一段描述。这背后,图像描述生成技术是关键。今天咱们…...
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手
RMBG-2.0(BiRefNet)开源抠图工具落地实操:Streamlit双列界面零门槛上手 想给产品换个背景,却不会用复杂的PS?想快速处理一批图片素材,又担心在线工具泄露隐私?今天,我们就来聊聊一个…...
python pygame实现贪食蛇
文章目录步骤2、创建snake.py,然后运行即可操作方式解读很简单的一个例子,开启小游戏制作大门。步骤 1、安装依赖 pip install pygame2、创建snake.py,然后运行即可 代码: import pygame import time import random# --- 1. 初…...
TensorRT-LLM与Triton Server部署实战:从环境配置到模型推理
1. 环境准备:从零搭建TensorRT-LLM与Triton Server基础环境 第一次接触TensorRT-LLM和Triton Server时,我花了整整三天时间在环境配置上踩坑。现在回想起来,大部分问题都源于对NVIDIA生态工具链的不熟悉。下面我会用最直白的语言,…...
AI股票分析师daily_stock_analysis进阶技巧:定制你的专属分析模板
AI股票分析师daily_stock_analysis进阶技巧:定制你的专属分析模板 1. 为什么需要定制分析模板 当你第一次使用AI股票分析师daily_stock_analysis时,可能会被它开箱即用的分析能力所惊艳。但随着使用深入,你会发现通用模板有时无法完全满足你…...
OpenClaw语音交互:千问3.5-9B+Whisper实现声控自动化
OpenClaw语音交互:千问3.5-9BWhisper实现声控自动化 1. 为什么需要语音交互的自动化助手 去年冬天的一个深夜,我正蜷在沙发上用笔记本处理文件,突然意识到一个问题——当双手被热咖啡和零食占据时,想要快速调取电脑里的资料变得…...
深入解析C++ STL容器:从底层实现到高效应用
1. STL容器基础概念与分类 第一次接触C STL容器时,我被它的强大功能震撼到了。记得当时写一个学生管理系统,原本需要几百行代码实现的链表操作,用list容器十几行就搞定了。STL(Standard Template Library)是C标准库的核…...
Seedance 2.0有多离谱?这款动画师能生成角色一致性视频的AI工具你一定要用
作为一个动画师,这两年,我后台被问得最多的一类问题,不是“哪款 AI 生图最好”,也不是“哪款 AI 视频最火”,而是更具体、更扎心的一句:动画师能生成角色一致性视频的AI工具,到底有没有真的能用…...
