Unity(2022.3.41LTS) - UI详细介绍- 原始图像

news2024/12/26 23:42:53

目录

零.简介

一、基本功能

二、属性和设置

三、与其他 UI 元素的配合

四、代码控制

六. 和 image的区别



零.简介

在 Unity 中,RawImage 是一种用于显示原始图像的 UI 组件。

一、基本功能

  1. 显示图像:RawImage 主要用于在 UI 中直接显示一张图像。可以将图像资源(如 Texture2D、Sprite 等)分配给 RawImage 的 texture 属性,以在屏幕上呈现图像。
  2. 支持多种图像格式:可以显示各种常见的图像格式,如 PNG、JPEG 等。它能够自动适应图像的尺寸和比例,确保图像在 UI 中正确显示。
  3. 比如前面介绍的用来显示视频纹理

二、属性和设置

  1. texture:这是 RawImage 最重要的属性,用于指定要显示的图像资源。可以在 Inspector 窗口中通过拖放图像资源到该属性上来设置。
  2. color:用于调整图像的整体颜色。可以通过设置颜色的 RGB 值和透明度来改变图像的外观。例如,可以将颜色设置为半透明以实现淡入淡出效果。
  3. uvRect:允许你指定图像的 UV 坐标范围,从而可以显示图像的一部分。这对于实现图像裁剪、动画帧播放等效果非常有用。

三、与其他 UI 元素的配合

  1. 可以与其他 UI 组件(如按钮、面板等)结合使用,以创建丰富的用户界面。例如,可以将 RawImage 作为按钮的背景图像,或者在面板中显示多个 RawImage 来展示一组图片。
  2. 通过调整 RawImage 的 Rect Transform(矩形变换),可以控制图像的大小、位置和旋转。可以将其锚定在特定的位置,以适应不同的屏幕尺寸和分辨率。

四、代码控制

  1. 通过脚本可以动态地更改 RawImage 显示的图像。例如:
using UnityEngine;
using UnityEngine.UI;

public class RawImageController : MonoBehaviour
{
    public RawImage myRawImage;

    void Start()
    {
        // 加载图像资源并设置给 RawImage
        Texture2D newTexture = Resources.Load<Texture2D>("MyImage");
        myRawImage.texture = newTexture;
    }
}
  1. 可以在运行时修改 RawImage 的其他属性,如颜色、UV 坐标等,以实现动态的视觉效果。

五、优化和注意事项

  1. 性能考虑:显示大尺寸或高分辨率的图像可能会对性能产生影响。尽量使用适当大小的图像资源,并根据实际需求进行压缩和优化。同时,避免在每一帧都频繁更新 RawImage 的图像资源,以提高性能。
  2. 资源管理:确保正确加载和释放图像资源,以避免内存泄漏。在不再需要显示特定图像时,及时将其从 RawImage 的 texture 属性中移除,并释放相关的资源。
  3. 兼容性:不同的图像格式和纹理类型可能在不同的平台上有不同的表现。在开发过程中,要在多个平台上进行测试,确保 RawImage 能够正确显示各种图像资源。
  4. 图像加载时间:如果图像资源较大或需要从网络加载,可能会导致加载时间较长。可以考虑使用异步加载或预加载技术,以减少用户等待时间。

六. 和 image的区别

功能特性

  1. RawImage

    • 主要用于显示原始的纹理(Texture)数据,可以直接接受 Texture2D、RenderTexture 等类型的图像资源。
    • 不支持 Sprite(精灵图)作为图像资源。
    • 通常用于显示动态生成的图像、视频帧或从外部获取的纹理数据。
    • 没有自动适应图像大小和比例的功能,需要手动调整 Rect Transform(矩形变换)来控制图像的显示尺寸。
  2. Image

    • 专门设计用于显示 Sprite(精灵图)资源,同时也可以接受 Texture2D 类型的图像资源。
    • 具有自动适应图像大小和比例的功能,可以根据图像的原始尺寸和 Rect Transform 的设置来自动调整显示效果。
    • 支持九宫格切片(Sliced)、平铺(Tiled)、填充(Filled)等特殊的显示模式,适用于制作按钮、边框等 UI 元素。
    • 通常用于显示游戏中的静态图标、界面元素等。

属性和设置

  1. RawImage

    • 主要属性包括 texture(用于设置显示的纹理)、color(调整图像颜色)等。
    • 没有 Image 中的 sprite 属性和相关的 Sprite 设置选项。
  2. Image

    • 具有 sprite 属性用于设置显示的 Sprite 资源,同时还有 colormaterial(材质)等属性。
    • 可以通过设置 Image Type(图像类型)来选择不同的显示模式,如 Simple(简单)、Sliced(切片)、Tiled(平铺)、Filled(填充)等。

使用场景

  1. RawImage

    • 当需要显示实时生成的图像数据(如从相机获取的视频帧)或动态加载的纹理资源时,RawImage 是一个合适的选择。
    • 用于显示非传统的图像格式或需要直接操作纹理数据的情况。
    • 例如,在制作视频播放器界面时,可以使用 RawImage 来显示视频帧。
  2. Image

    • 适用于显示游戏中的静态 UI 元素,如图标、按钮背景等。
    • 当需要利用 Sprite 的特殊显示模式来制作可拉伸、可重复的 UI 元素时,Image 更加方便。
    • 例如,制作游戏菜单界面时,使用 Image 来显示各种图标和按钮。

性能影响

  1. RawImage

    • 由于没有自动适应图像大小和比例的功能,可能需要更多的手动调整和计算,在某些情况下可能会增加开发的复杂性。
    • 显示大尺寸的纹理数据可能会对性能产生较大影响,需要注意内存和 GPU 资源的使用。
  2. Image

    • 自动适应功能可以简化开发过程,但在某些情况下可能会导致不必要的图像缩放,影响图像质量。
    • 对于复杂的 Sprite 显示模式,可能会有一定的性能开销,特别是在处理大量 UI 元素时。

所以在制作 UI 图片时,Image 通常是更合适的选择.

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

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

相关文章

Python数组遍历-从基础到高级的全面指南

你有没有想过,为什么有些程序员能够轻松地操纵大量数据,而其他人却在简单的数组操作上挣扎?答案往往藏在一个看似简单却至关重要的技能中:数组遍历。无论你是刚入门的新手,还是寻求提升的老手,掌握Python中的数组遍历技巧都将极大地提升你的编程效率和代码质量。 在这篇文章中…

使用 systemd-analyze 分析 Linux 系统启动慢的原因

使用 systemd-analyze 命令可以查看 Linux 系统在启动过程中每个服务的耗时情况, 方便我们排查是哪个环节导致系统启动缓慢, 以下是整理的常用命令参数和效果. 例子中一下子就可以定位到是 gssproxy.service 服务启动耗时过长. systemd-analyze blame Print list of running u…

LabVIEW如何自学成为专业开发者

自学成为LabVIEW专业开发者需要一个系统化的学习和实践过程&#xff0c;以下是一些关键步骤&#xff1a; 1. 扎实的基础学习 了解LabVIEW的基础概念&#xff1a;首先要熟悉LabVIEW的基本操作、数据流编程理念和图形化编程环境。可以通过LabVIEW的官方教程、Bilibili上的视频课程…

【舞动生命,不缺营养!】亨廷顿舞蹈症患者的维生素补给站

Hey小伙伴们~ &#x1f44b; 今天我们要聊的是一个温暖而重要的话题——关于亨廷顿舞蹈症&#xff08;HD&#xff09;患者如何通过合理补充维生素&#xff0c;来更好地支持他们的健康与生活品质&#xff01;&#x1f31f; &#x1f338; ‌首先&#xff0c;了解亨廷顿舞蹈症‌…

TCP的传输速度

如何确定TCP最大传输速度&#xff1f; TCP 的传输速度&#xff0c;受限于发送窗⼝&#xff0c;接收窗⼝以及⽹络设备传输能⼒。 其中&#xff0c;窗⼝⼤⼩由内核缓冲区⼤⼩决定。如果缓冲区与⽹络传输能⼒匹配&#xff0c;那么缓冲区的利⽤率就达到了最⼤化。 如何计算网络传…

JAVA:Spring Boot 整合 Swagger 的技术指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 在现代Web开发中&#xff0c;API文档的生成和维护是非常重要的。Swagger是一款流行的API文档生成工具&#xff0c;它可以帮助开发者自动生成API文档&#xff0c;并提供可视化的接口…

Redis从简单使用到底层原理与分布式缓存

文章目录 [Redis参考手册](https://redis.io/docs/latest/commands/)1 基础认识1.1 安装配置1.2 通用命令1.3 数据类型1.3.1 数据结构与内部编码stringkey的结构hashlistsetsorted_set 1.4 单线程模型 2 redis客户端2.1 RESP协议&#xff08;Redis serialization protocol&…

SpringBoot2:请求处理原理分析-接口参数的常用注解

1、PathVariable 作用说明&#xff1a;获取路径参数 案例&#xff1a; 接口收参形式&#xff1a; GetMapping("/car/{id}/owner/{username}")public Map<String,Object> getCar(PathVariable("id") Integer id,PathVariable("username")…

echarts圆饼图定时器动画

(function () {const WdxjEcharts echarts.init(document.getElementById(wdxjEchart))let num 0;var imgURL "../imagesNew/wd-center.png";var trafficWay [{name: 火车,value: 20}, {name: 飞机,value: 10}, {name: 客车,value: 30}, {name: 轮渡,value: 40}]…

深入解读Docker核心网络管理:架构、模式与通信机制

在容器化技术中&#xff0c;网络管理是影响容器通信和应用部署的重要组成部分。Docker不仅简化了应用的部署过程&#xff0c;还提供了强大的网络管理功能&#xff0c;确保容器之间以及容器与外部系统的网络通信能够高效、稳定地进行。 本文将深入解读Docker的核心网络管理原理…

查看hprof文件

hprof可以用来分析某个进程的内存情况&#xff0c;对我们分析内存泄漏问题有很大帮助&#xff0c;本文主要记录如何生成及查看hprof文件。 1生成.hprof文件 可以使用adb命令生成 .hprof文件&#xff0c;生成的是在执行命令的那一刻&#xff0c;该进程的内存情况&#xff1a; …

后端Web之SpringBoot原理

目录 1.配置优先级 2.Bean 3.SpringBoot原理 1.配置优先级 SpringBoot中支持三种格式的配置文件: .application.properties、application.yml和application. yaml。它们的配置优先级分别降低。虽然springboot支持多种格式配置文件&#xff0c;但是在项目开发时,推荐统一使用…

视频智能分析平台LntonAIServer安防监控平台花屏检测、马赛克检测功能介绍

视频监控系统在现代社会中扮演着至关重要的角色&#xff0c;无论是用于安全监控、交通管理还是其他用途&#xff0c;视频的质量直接关系到系统的可靠性和有效性。LntonAIServer通过新增的视频质量诊断功能&#xff0c;包括花屏检测和马赛克检测&#xff0c;进一步增强了视频监控…

读书学习进阶笔记 # Datawhale X 李宏毅苹果书 AI夏令营

文章目录 &#x1f6a9;学习目标&#x1f6a9;学习内容&#x1f6a9; Task1.1&#x1f3af;为什么优化会失败&#x1f4cc;因非信息梯度导致的失败 &#x1f3af;局部极小值与鞍点&#x1f3af;临界点及其种类&#x1f3af;如何判断临界值种类&#x1f4cc;更简便的方法来判断 …

Unity教程(十四)敌人空闲和移动的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

MT6895(天玑8100)处理器规格参数_MTK联发科平台方案

MT6895平台 采用台积电5nm工艺&#xff0c;与天玑 8000 相比性能提升 20% &#xff0c;搭载4 个 2.85GHz A78 核心 4 个 2.0GHz A55 核心&#xff0c;CPU能效比上一代提高 25% 。GPU 采用了第三代的Valhall Arm Mali-G610 MC6架构&#xff0c;拥有6核心&#xff0c;搭配天玑81…

ubuntu22.04 qemu 安装windows on arm虚拟机

ubuntu22.04 qemu 安装windows on arm虚拟机 iso: https://uupdump.net/ https://massgrave.dev/windows_arm_links vivo driver: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.262-2/ qemu sudo apt update sudo a…

Java笔试面试题AI答之JDBC(1)

文章目录 1. 什么是JDBC&#xff1f;2. 驱动(Driver)在JDBC中的角色&#xff1f;3. JDBC PreparedStatement比Statement有什么优势&#xff1f;1. 预编译和性能提升2. 参数化查询和安全性3. 更好的可读性和可维护性4. 支持批量操作5. 缓存机制&#xff08;特定数据库环境&#…

【自考zt】【数据结构】【21.10】

【关键字】 数据元素基本单位、抽象数据类型、上三角压缩对称矩阵、排序O&#xff08;n2&#xff09;、不宜链表快排 循环队列入队下标、二叉链表空指针、无相连通图边数差、B树非根结点关键字 链栈无头结点 单链表前二节点和、邻接矩阵度、二叉排序树 一、单选 二、填…

WGCLOUD可以监测交换机的哪些指标数据

WGCLOUD有个模块SNMP监测&#xff0c;可以用于监测交换机、防火墙等设备 监测的指标包括&#xff1a;上行流量&#xff0c;下行流量&#xff0c;每个接口的传输速率&#xff08;包括上行和下行&#xff09;&#xff0c;每个接口的状态&#xff0c;基本信息&#xff0c;温度&am…