Unity UGUI的RawImage(原始图片)组件的介绍及使用
Unity UGUI的RawImage(原始图片)组件的介绍及使用
1. 什么是RawImage组件?
RawImage是Unity UGUI中的一个组件,用于显示原始图片。与Image组件不同,RawImage可以直接显示原始图片的像素数据,而不需要经过额外的处理。
2. RawImage组件的工作原理
RawImage组件通过将原始图片的像素数据直接传递给显卡进行渲染,从而实现显示原始图片的功能。它可以显示各种格式的图片,包括常见的PNG、JPG等格式。
3. RawImage组件的常用属性
- Texture:用于指定要显示的原始图片的纹理。
- Color:用于指定图片的颜色,可以通过调整透明度来实现图片的淡入淡出效果。
- Material:用于指定图片的材质,可以通过更换材质来实现不同的渲染效果。
- UV Rect:用于指定图片在纹理中的位置和大小。
4. RawImage组件的常用函数
- SetNativeSize():根据原始图片的大小自动调整RawImage的大小,使其与图片保持一致。
- SetMaterialDirty():标记材质为脏,使其在下一帧重新渲染。
- SetVerticesDirty():标记顶点为脏,使其在下一帧重新计算顶点位置。
5. 示例代码
示例1:显示一张图片
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RawImage rawImage;
public Texture texture;
void Start()
{
rawImage.texture = texture;
}
}
操作步骤:
- 创建一个空物体,并将RawImage组件添加到该物体上。
- 将要显示的图片拖拽到RawImage组件的Texture属性上。
- 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
- 运行游戏,可以看到图片被显示在RawImage组件中。
注意事项:
- 确保要显示的图片已经导入到Unity项目中。
示例2:调整图片的颜色
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RawImage rawImage;
public Texture texture;
public Color color;
void Start()
{
rawImage.texture = texture;
rawImage.color = color;
}
}
操作步骤:
- 创建一个空物体,并将RawImage组件添加到该物体上。
- 将要显示的图片拖拽到RawImage组件的Texture属性上。
- 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
- 在Inspector面板中,调整RawImage组件的Color属性,改变图片的颜色。
- 运行游戏,可以看到图片的颜色被改变。
注意事项:
- Color属性的透明度可以通过调整Alpha值来实现淡入淡出效果。
示例3:调整图片的大小
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RawImage rawImage;
public Texture texture;
void Start()
{
rawImage.texture = texture;
rawImage.SetNativeSize();
}
}
操作步骤:
- 创建一个空物体,并将RawImage组件添加到该物体上。
- 将要显示的图片拖拽到RawImage组件的Texture属性上。
- 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
- 运行游戏,可以看到RawImage的大小自动调整为与图片一致。
注意事项:
- 在调用SetNativeSize()函数之前,确保RawImage的Texture属性已经被赋值。
示例4:更换图片
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RawImage rawImage;
public Texture texture1;
public Texture texture2;
void Start()
{
rawImage.texture = texture1;
}
public void ChangeTexture()
{
rawImage.texture = texture2;
}
}
操作步骤:
- 创建一个空物体,并将RawImage组件添加到该物体上。
- 将要显示的图片1和图片2拖拽到RawImage组件的Texture属性上。
- 创建一个按钮,并将上述示例代码添加到一个脚本中,并将该脚本挂载到按钮上。
- 将按钮的OnClick事件关联到ChangeTexture()函数。
- 运行游戏,点击按钮,可以看到图片被更换为图片2。
注意事项:
- 确保按钮的OnClick事件已经正确关联到ChangeTexture()函数。
示例5:更换材质
using UnityEngine;
using UnityEngine.UI;
public class Example : MonoBehaviour
{
public RawImage rawImage;
public Texture texture;
public Material material;
void Start()
{
rawImage.texture = texture;
rawImage.material = material;
}
}
操作步骤:
- 创建一个空物体,并将RawImage组件添加到该物体上。
- 将要显示的图片拖拽到RawImage组件的Texture属性上。
- 将要使用的材质拖拽到RawImage组件的Material属性上。
- 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
- 运行游戏,可以看到图片的渲染效果被更换为材质所定义的效果。
注意事项:
- 确保要使用的材质已经导入到Unity项目中。
参考资料
- Unity官方文档:RawImage
- Unity官方教程:Working with Raw Images
Unity UGUI的RawImage(原始图片)组件的介绍及使用的更多相关文章
- Unity UGUI实现鼠标拖动图片
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...
- Unity UGUI暂停按钮切换图片代码
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...
- Unity UGUI Layout自动排版组件用法介绍
Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享 ...
- Unity UGUI
超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...
- Unity UGUI图文混排源码(三) -- 动态表情
这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn. ...
- Unity UGUI图文混排源码(二)
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...
- Unity UGUI实现图文混排
目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响.然后对于中文来说就是一个相当麻烦的事了,毕竟图文混排多用于游戏 ...
- Unity UGUI事件接口概述
UGUI 系统虽然提供了很多封装好的组件,但是要实现一些特定的功能还是显得非常有限,这时候就需要使用事件接口来完成UI功能的实现.比如我们想实现鼠标移动到图片上时自动显示图片的文字介绍,一般思路会想到 ...
- Unity UGUI —— 无限循环List
还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是 ...
- 基于Unity·UGUI实现的RecycleList循环列表UI容器
在UI功能开发实践中,列表UI容器是我们经常使用一种UI容器组件.这种组件就根据输入的数据集合生成对应数据项目.从显示的方向来说,一般就分为水平排布和垂直排布的列表容器两种.列表容器为了在有限的界面空 ...
随机推荐
- .NET周报 【4月第4期 2023-04-23】
国内文章 2023成都.NET线下技术沙龙圆满结束 https://www.cnblogs.com/edisonchou/p/2023_chengdu_dotnet_club_activity_rev ...
- IE不兼容问题 字符串格式化
Js现在支持高级语法,字符串格式化 alert(`aaaa${content}`); 我们使用一段完整的html来打开测试下: 1 <!DOCTYPE html> 2 <html&g ...
- IPS 和 IDS
IPS/IDS 什么是IPS和IDS IDS/IPS是检测和防止对网络服务器进行未授权的访问的系统.有许多产品同时有IDS和IPS的作用,作为加强企业信息安全所必须的系统 什么是IDS(Intrusi ...
- 【Azure 媒体服务】Media Service的编码示例 -- 创建缩略图子画面的.NET代码调试问题
问题描述 在中国区Azure上,使用Media Service服务,想要使用.NET的代码来对上传视频创建缩略图(Thumbnail) . 通过官网文档(https://docs.azure.cn/z ...
- 数据治理之关键环节元数据管理开源项目datahub探索
@ 目录 概述 定义 核心功能 概念 元数据应用 其他开源 架构 概览 组件 元数据摄取架构 服务体系结构 本地部署 环境要求 安装 摄取样例 摄取入门 介绍 核心概念 命令行MySQL摄取示例 配置 ...
- 民谣女神唱流行,基于AI人工智能so-vits库训练自己的音色模型(叶蓓/Python3.10)
流行天后孙燕姿的音色固然是极好的,但是目前全网都是她的声音复刻,听多了难免会有些审美疲劳,在网络上检索了一圈,还没有发现民谣歌手的音色模型,人就是这样,得不到的永远在骚动,本次我们自己构建训练集,来打 ...
- 老夫的正则表达式大成了,桀桀桀桀!!!【Python 正则表达式笔记】
一.正则表达式语法 (一) 字符与字符类 特殊字符 \.^$?+*{}[]()| 为特殊字符,若想要使用字面值,必须使用 \ 进行转义 字符类 [] [] 匹配包含在方括号中的任何字符.它也可以指定范 ...
- 2021-01-30:redis中,Pipeline有什么好处?
福哥答案2021-01-30:可以将多次 IO 往返的时间缩减为一次,减少多次IO延迟的开销.前提是 pipeline 执行的指令之间没有因果相关性. 多个指令之间没有依赖关系,可以使用 pipeli ...
- 2021-11-22:给定一个正数数组arr,表示每个小朋友的得分; 任何两个相邻的小朋友,如果得分一样,怎么分糖果无所谓,但如果得分不一样,分数大的一定要比分数少的多拿一些糖果; 假设所有的小朋友坐
2021-11-22:给定一个正数数组arr,表示每个小朋友的得分: 任何两个相邻的小朋友,如果得分一样,怎么分糖果无所谓,但如果得分不一样,分数大的一定要比分数少的多拿一些糖果: 假设所有的小朋友坐 ...
- Qt+QtWebApp开发笔记(一):QtWebApp介绍、下载和搭建基础封装http轻量级服务器Demo
前言 在arm上做了Qt的应用程序,为了在局域网实现web页的访问方式来配置arm上Qt的程序,局域网轻量级http服务器是很好的实现方式之一,有机会做国产麒麟上Qt的http服务器,正好接触到了 ...