当前位置: 首页 > news >正文

Unity学习之UGUI进阶

一、事件监听接口

1、作用

用于实现类型长按、双击、拖拽等基础控件无法实现的功能
所有控件都能够添加更多的事件监听来处理对应的逻辑

2、事件监听接口类型

(1)常用事件接口

在这里插入图片描述

(2)不常用事件接口

在这里插入图片描述

3、使用事件监听接口

(1)使用方法

a、引用命名控件using UnityEngine.EventSystems;
b、继承接口
c、实现接口中的内容
d、将该脚本挂载到想要监听自定义事件的UI控件上

(2)具体实现例子

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;public class L8 : MonoBehaviour,IPointerEnterHandler,IPointerExitHandler,IPointerDownHandler,IPointerUpHandler
{public void OnPointerEnter(PointerEventData eventData){print("鼠标进入");}public void OnPointerExit(PointerEventData eventData){print("鼠标离开");}public void OnPointerUp(PointerEventData eventData){print("鼠标抬起");}public void OnPointerDown(PointerEventData eventData){print("鼠标按下");}
}

4、PointerEventData参数的关键内容

在这里插入图片描述

5、总结

(1)好处

可以实现一些长按、双击拖拽等功能

(2)坏处

不方便管理,需要自己写脚本继承接口挂载到对应控件上,比较麻烦

二、事件触发器

1、作用

EventTrigger,集成了所有事件接口的脚本,可以更加方便地位控件添加事件监听

2、如何使用事件触发器

(1)拖拽脚本进行关联

在这里插入图片描述
在这里插入图片描述

(2)使用代码进行添加关联

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;public class EnvTrigger : MonoBehaviour
{public EventTrigger envTrigger;// Start is called before the first frame updatevoid Start(){//声明一个希望监听的事件对象EventTrigger.Entry entry = new EventTrigger.Entry();//声明 事件的类型entry.eventID = EventTriggerType.PointerDown;//监听函数关联entry.callback.AddListener((data) =>{print("鼠标按下" + "  " + data);});//将声明好的事件对象 加入到EventTrigger中envTrigger.triggers.Add(entry);}
}

3、总结

EventTrigger可以让我们写更少的代码,可以在面板类中处理面部控制的事件逻辑,更加的面向对象,便于管理

三、屏幕坐标转UI坐标

1、RectTransformUtility类

RectTransformUtility类,是RectTransform的辅助类
主要用于进行一些坐标的转换
其中最重要的函数就是将屏幕控件上的点,转换成UI本地坐标下的点

2、将屏幕坐标转换成UI本地坐标系下的点

(1)方法

RectTransformUtility.ScreenPointToLocalPointInRectangle(参数一,参数二,参数三,参数四)
参数一:相对父对象
参数二:屏幕点
参数三:摄像机
参数四:最终得到的点
一般配合拖拽事件使用

public void OnDrag(PointerEventData eventData){Vector2 UIposition;RectTransformUtility.ScreenPointToLocalPointInRectangle(this.transform.parent as RectTransform,eventData.position,eventData.pressEventCamera,out UIposition);this.transform.localPosition = UIposition;print("屏幕坐标" + eventData.position);print("UI坐标" + UIposition);}

四、遮罩

1、作用

在不改变图片的情况下,让图片在游戏中只显示其中一部分

2、使用方法

(1)关键组件 Mask

实现遮罩效果需要添加Mask组件
通过在父对象上添加Mask组件即可遮罩其子对象

(2)注意点

想要被遮罩的Image需要勾选Maskable
只要父对象添加了Mask组件,那么所有的UI子对象都会被遮罩
遮罩父对象图片的制作,不透明的地方显示,透明的地方被遮罩

五、模型和粒子显示在UI之前

1、模型显示在UI之前

(1)方法一:直接用摄像机渲染3D物体

Canvas的渲染模式不能是覆盖模式
摄像机模式和世界模式都可以让模型显示在UI之前(Z轴元素在UI元素之前即可)
注意点:
摄像机模式时建议用专门的摄像机渲染UI相关
面板上的3D物体建议也用UI摄像机进行渲染

(2)方法二:将3D物体渲染在图片上,通过图片显示

专门使用一个摄像机渲染3D模型,将其渲染内容输出到Render Texture上
类似小地图的制作方式
再将渲染的图显示在UI
该方式,不管Canvas的渲染模型是哪种都可以使用

2、粒子特效显示在UI之前

粒子特效的显示和3D物体类似
注意点:
在摄像模式下时,可以在粒子组件的Renderer相关参数Order in Layer中改变排序层,让粒子特效始终显示在其之前不受z轴影响

六、异形按钮

1、什么是异形按钮

图片形状不是传统矩形的按钮

2、如何让异形按钮能够准确点击

(1)通过添加子对象的形式

在这里插入图片描述
增加多个透明子对象,将透明子对象拼凑出异形形状,从而实现异形按钮

(2)通过代码改变图片的透明度相应阈值

在这里插入图片描述

	public Image image;// Start is called before the first frame updatevoid Start(){image.alphaHitTestMinimumThreshold = 0.1f;}

七、CanvasGroup

1、作用

实现整体控制一个面板的淡入淡出或者整体禁用

2、主要属性

在这里插入图片描述
在这里插入图片描述

相关文章:

Unity学习之UGUI进阶

一、事件监听接口 1、作用 用于实现类型长按、双击、拖拽等基础控件无法实现的功能 所有控件都能够添加更多的事件监听来处理对应的逻辑 2、事件监听接口类型 (1)常用事件接口 (2)不常用事件接口 3、使用事件监听接口 &#…...

深度学习领域创新黑马!频域特征融合新突破

最近,FreqFusion引起了广泛关注,这是一种创新的频率感知特征融合方法,可以提升数据处理的准确性和效率,尤其在语义分割、目标检测、实例分割和全景分割等任务中表现卓越。 通过结合频域分析与特征融合技术,FreqFusion…...

路由器的转发表

【4-24】 已知路由器R₁ 的转发表如表T-4-24 所示。 表T-4-24 习题4-24中路由器R₁的转发表 前缀匹配 下一跳地址 路由器接口 140.5.12.64/26 180.15.2.5 m2 130.5.8/24 190.16.6.2 ml 110.71/16 ----- m0 180.15/16 ----- m2 190.16/16 ----- ml 默认 11…...

用Cline打造你的智能搜索助手:Tavily Search MCP集成指南

引言 本文将详细介绍如何在Cline编辑器中集成Tavily Search智能搜索功能。我们将从MCP(Model Context Protocol)协议基础开始,深入探讨Tavily Search MCP服务器的安装配置、使用方法,以及进阶的二次开发技巧。无论你是AI开发者还…...

HTML+CSS+JS制作中华传统美食主题网站(内附源码,含5个页面)

一、作品介绍 HTMLCSSJS制作一个中华传统文化主题网站,包含首页、菜系页、食材页、名厨页、美食故事页等5个静态页面。其中每个页面都包含一个导航栏、一个主要区域和一个底部区域。 二、页面结构 1. 顶部横幅导航区 包含网站Logo、搜索栏、主导航菜单&#xff0…...

黄仁勋CES 2025演讲重点内容

黄仁勋CES 2025演讲重点内容 硬件产品发布 GeForce RTX 50系列GPU: 架构与性能提升:正式发布的新一代GeForce RTX 50系列GPU采用英伟达旗舰的Blackwell架构,这是自25年前引入可编程着色技术以来计算机图形领域最重大的创新。该系列显卡在图形…...

TVbox 手机、智能电视节目一网打尽

文章目录 一、简要介绍二、优点三、下载地址 一、简要介绍 TVbox是目前最火爆的多端、多源的电视影音工具,是一款开源的自定义添加站源的影音工具。TVBox,支持电视频道直播。一款TV端影视工具,软件本身不具有任何影视资源,但可以…...

sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)

文章目录 引言I 基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表see also: 监视SQL Server 内存使用量资源信号灯 DMV sys.dm_exec_query_resource_semaphores( 确定查询执行内存的等待)引言 查询历史数据库客户端ip应用场景: 安全分析缺乏…...

kubesphere前端源码运行

一、下载源码 源码是react,下载地址是 GitHub - kubesphere/console at v3.3.2 然后直接用git下拉就可以了 下拉完成后差不多是这样一个目录结构,记得切分支到3.3.2 二、下载依赖 1、node & yurn 想要运行源码首先需要node,使用刚才…...

分布式主键ID生成方式-snowflake雪花算法

这里写自定义目录标题 一、业务场景二、技术选型1、UUID方案2、Leaf方案-美团(基于数据库自增id)3、Snowflake雪花算法方案 总结 一、业务场景 大量的业务数据需要保存到数据库中,原来的单库单表的方式扛不住大数据量、高并发,需…...

深入理解感知机(Perceptron)算法

深入理解感知机(Perceptron)算法 1. 引言 感知机是神经网络和深度学习的基石,由Frank Rosenblatt在1957年提出。它模拟了生物神经元的基本特征,是一个简单但重要的二分类线性分类器。本文将从数学原理到实际应用,全面介绍感知机算法。 2. 数学基础 2.1 定义 感知机是一…...

操作系统——死锁与饥饿

死锁的概念 死锁产生的条件 前三种条件可能会产生死锁,第四种条件(环路)可能会产生死锁 机器检测是否死锁是——检测是否有环路 解决死锁 以上预防死锁的方法不太实用,低效 银行家算法 P2运行完后可用队列就变成了 6 2 3…...

【算法】字符串算法技巧系列

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 引入:字符串相关算法技巧 1:字符串转数组 2:子字符串 3&#xff…...

Vue中el-tree结合vuedraggable实现跨组件元素拖拽

实现效果&#xff1a; 左侧el-tree: <template><el-treeclass"filter-tree":data"treeData":props"defaultProps":filter-node-method"filterNode"node-key"id"draggable:allow-drop"allowDrop"node-dr…...

湘潭大学人机交互复习

老师没给题型也没划重点&#xff0c;随便看看复习了 什么是人机交互 人机交互&#xff08;Human-Computer Interaction&#xff0c;HCI&#xff09;是关于设计、评价和实现供人们使用的交互式计算机系统&#xff0c;并围绕相关的主要现象进行研究的学科。 人机交互研究内容 …...

基于ADAS 与关键点特征金字塔网络融合的3D LiDAR目标检测原理与算法实现

一、概述 3D LiDAR目标检测是一种在三维空间中识别和定位感兴趣目标的技术。在自动驾驶系统和先进的空间分析中&#xff0c;目标检测方法的不断演进至关重要。3D LiDAR目标检测作为一种变革性的技术&#xff0c;在环境感知方面提供了前所未有的准确性和深度信息. 在这里&…...

Kivy App开发之UX控件DropDown下拉列表

怎样在kivy中实现下拉列表的功能? 在kivy中,下拉列表的定位是自动的,即列表展开的位置根据上下方是否有控件自动调整,且可以包含其他控件,如按钮,图片等。 在应用中,需要使用base包下的runTouchApp类,用于触发下拉框。 DropDown控件常见的属性如下 属性相关说明auto_…...

机器学习模型评估指标

模型的评估指标是衡量一个模型应用于对应任务的契合程度&#xff0c;常见的指标有&#xff1a; 准确率&#xff08;Accuracy&#xff09;: 正确预测的样本数占总样本数的比例。适用于类别分布均衡的数据集。 精确率&#xff08;Precision&#xff09;: 在所有被预测为正类的样…...

C# 特性

总目录 C# 语法总目录 C# 特性 特性1. 特性类自定义格式2. 特性的位置参数和命名参数3. 特性的目标4. 指定多个特性5. 调用者信息特性 特性 1. 特性类自定义格式 自定义特性类需要继承自Attribute类&#xff0c;特性使用通常都会省略名字后面的Attribute&#xff0c;会自动识…...

Reactor测试框架之StepVerifier

Reactor测试框架之StepVerifier 测试步骤1、创建StepVerifier实例2、添加断言3、执行验证 代码实例 在响应式编程中&#xff0c;Reactor框架提供了StepVerifier测试类&#xff0c;用于对响应式序列进行断言和验证。StepVerifier主要用于对Publisher发出的元素序列进行逐步的、精…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...