Unity UGUI的RawImage(原始图片)组件的介绍及使用

2023-11-17

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;
    }
}

操作步骤:

  1. 创建一个空物体,并将RawImage组件添加到该物体上。
  2. 将要显示的图片拖拽到RawImage组件的Texture属性上。
  3. 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
  4. 运行游戏,可以看到图片被显示在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;
    }
}

操作步骤:

  1. 创建一个空物体,并将RawImage组件添加到该物体上。
  2. 将要显示的图片拖拽到RawImage组件的Texture属性上。
  3. 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
  4. 在Inspector面板中,调整RawImage组件的Color属性,改变图片的颜色。
  5. 运行游戏,可以看到图片的颜色被改变。

注意事项:

  • 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();
    }
}

操作步骤:

  1. 创建一个空物体,并将RawImage组件添加到该物体上。
  2. 将要显示的图片拖拽到RawImage组件的Texture属性上。
  3. 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
  4. 运行游戏,可以看到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;
    }
}

操作步骤:

  1. 创建一个空物体,并将RawImage组件添加到该物体上。
  2. 将要显示的图片1和图片2拖拽到RawImage组件的Texture属性上。
  3. 创建一个按钮,并将上述示例代码添加到一个脚本中,并将该脚本挂载到按钮上。
  4. 将按钮的OnClick事件关联到ChangeTexture()函数。
  5. 运行游戏,点击按钮,可以看到图片被更换为图片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;
    }
}

操作步骤:

  1. 创建一个空物体,并将RawImage组件添加到该物体上。
  2. 将要显示的图片拖拽到RawImage组件的Texture属性上。
  3. 将要使用的材质拖拽到RawImage组件的Material属性上。
  4. 将上述示例代码添加到一个脚本中,并将该脚本挂载到空物体上。
  5. 运行游戏,可以看到图片的渲染效果被更换为材质所定义的效果。

注意事项:

  • 确保要使用的材质已经导入到Unity项目中。

参考资料

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unity UGUI的RawImage(原始图片)组件的介绍及使用 的相关文章

  • Unity3D研究院之游戏开发中的人工智能AI

    人工智能这个东西在游戏中是非常重要的 人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑 说难了TA需要一个非常复杂的算法 本文我主要说说Unity3D中人工智能的脚本如何来编写 首先你应该搞清楚的一点AI脚本属于一个工具类脚本 工
  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • 关于Albedo贴图、颜色贴图、Metallic 贴图、Specular贴图、法线贴图、视差贴图、凹凸贴图、Height Map高度贴图、AO 贴图Occlusion 贴图、Emission 贴图等

    在学习unity的过程中 被各种贴图弄得晕头转向 为了弄清楚各种贴图 查询了很多资料 粗略的整理如下 只要耐心看完 对贴图的基本用法基本上就没问题了 1 Albedo 贴图 可以看做是Diffuse颜色贴图 Albedo 反照率 贴图 用于
  • Unity之Animation动画

    Unity之Animation动画 Unity之Animation绘制动画 这篇文章做最简单的动画 让一个立方体从左边移动到右边 1 创建一个Unity的新工程 名为TestAnimation 点击Create And Open按键 打开工
  • Unity3d 简单的按照路径移动物体!

    在TORQUE引擎中 我们只要设置几个点 然后物体会按照这几个点顺序移动 Unity3d也可以的 现在介绍一个很简单的按照路径移动的方法 目标是让蓝色方块沿着紫色方块组成的路径移动 设计思想就是让蓝色方块移动第一个 然后继续移动到第二个 然
  • Unity中的单元测试

    我知道的单元测试有两种方法 1 从Unity的AssetStore窗口下载UnityTestTools 已下架了 2 使用TestRuner 2018 2 5以上版本有 我用的是2018 2 7 TestRuner的用法 操作窗口 Wind
  • 服务器时间管理器

    时间戳管理器 using System using UnityEngine public class SyncTime Singleton
  • unity3d实现简单的打飞碟游戏

    游戏内容 游戏有n个round 每个round发射10次trial 每个trial的飞碟都可能不同 包括速度角度得分等 使用鼠标进行射击 点中即表示射击成功 游戏要求 使用带缓存的工厂模式来管理飞碟的生产与再利用 工厂使用单例模式 游戏的设
  • Unity3d提升效率的高级技巧(二)

    11 在层次视图中选中某个游戏对象 按快捷键 Cmd Ctrl D 即可复制该对象 对于检视面板中的数组字段也可已同样的方式来复制元素 12 检视面板中所有的颜色字段都是支持复制和粘贴的 只需右键点击颜色字段既可选择操作 13 如果觉得在场
  • protobuf C#编译

    protobuf C 编译 标签 protobufc 2016 08 30 23 22 342人阅读 评论 1 收藏 举报 分类 工作记录 2 版权声明 本文为博主原创文章 未经博主允许不得转载 1 下载protobuf代码 https g
  • 也想做一个绝地求生版的汽车控制移动,进来瞧瞧?(干货满满)

    控制车子移动 效果图附上 1 首先4个车轮复制一遍为车轮2备用 2 给车轮2全部添加wheel collider 只剩下车轮碰撞器和transform组件 3 给原版4个车轮添加脚本wheel 变量共有 面板赋值 依次添加车轮2里面的车轮c
  • unity3d 理解刚体(Rigidbody)和碰撞体(Collider)以及触发器(Is Trigger),边学边更新

    unity3d 理解刚体 Rigidbody 和碰撞体 Collider 以及触发器 Is Trigger 边学边更新 分类 Unity3D 2014 04 01 16 50 2755人阅读 评论 2 收藏 举报 刚体 Rigidbody
  • Unity3D Engine Architecture

    原文 http www umingo de doku php id paper mechs and tanks section03 Architecture To better understand the game s software
  • Unity3D如何修改Button显示的文字以及深入了解Button组件

    在创建了一个Button后 结构如图 先仔细观察一下Button的Inspector视图 发现其中竟然有一个叫Button的脚本组件 新建脚本 代码如下 并将该脚本绑定给Canvas组件 using UnityEngine UI using
  • Unity使用spine动画

    Unity使用spine动画 在 Unity 中 常常使用 Spine 来制作一些动画 引擎本身并不能直接播放 Spine 动画 需要额外导入一个 RunTime 插件库才能支持 官网插件导入 当然 也可以到 Spine 官网关于 Unit
  • [Unity XLua]热更新XLua入门(一)-基础篇

    Aladdin XLua 前言 前段时间腾讯开源了一个内部热更框架XLua在Unity开发群里引起一阵热议 也受到广大开发者的热捧 然后我当然也抱着好奇的心去学习学习 后面也会将扩展之后的工程放在git上 大家一起学习交流 在此感谢XLua
  • Unity中UI框架的使用1-添加面板、显示Loading页面

    其中BasePanel和Canvas都是挂在面板的预制物上的 1 导入我们的UI框架 本篇文章中有用的是两个UIPanelType NUIManager和NBasePanel 会放在文章最后供大家使用 2 先将我们做好的Panel设置成预制
  • Unity3d获得android和ios设备的唯一标识

    android为mac地址 ios为advertisingIdentifier 函数都比较简单 网上也搜得到 我也就不多说了 主要是对于我们没做过安卓和IOS开发的人来说 整合进工程有各种的问题 我也就直接上网盘了点击打开链接 代码包里看得
  • java中Keytool的使用总结

    java中Keytool的使用总结 2011 02 26 15 30 15 分类 在申请Android Map API Key的时候使用到了java中Keytool 下面转一篇介绍java中Keytool的文章 http blog csdn
  • Unity3d + NGUI 的多分辨率适配

    移动端的多机型适配 现在要介绍的是 锁链战记 这款游戏的适配方法 这种适配方法是UI是一个基础尺寸 背景是一个基础尺寸 背景比UI多出的部分是一些没有实际作用的部分 这样的适配方式避免了在iPhone5这样的小屏幕上镶边 首先设定UIRoo

随机推荐

  • 5_spring-cloud-zuul-网关

    文章目录 网关 链路追踪 Zuul zuul 原理 负载均衡设置 配置指定服务的路由 重定向 忽略服务 禁止直接请求 前缀配置 暴露路由端点 网关 链路追踪 Zuul Sleuth https start aliyun com Zuul是N
  • 软件测试学习规划路线

    现如今互联网行业飞速发展 IT行业也是水涨船高 软件行业的未来发展也是越来越好 而软件测试在软件行业可谓是一个必不可少的职业 它不仅算得上一个长青工作 而且也是一个在需求持续增长的职业 如果你已经入行软件测试了 那就沉住气继续努力下去 保持
  • MyEclipse新建Maven webapp项目

    MyEclipse中创建新的Maven项目 webapp目录结构 过程如下 1 New gt Project gt Maven Project 2 Next 3 Next 选择 maven archetype webapp 创建一个weba
  • 编程教育案例

    1 Osmo Coding早教玩具 可以编代码的智能版乐高 https www playosmo com zh cn schools https digi tech qq com a 20160527 055566 htm https ww
  • BUUCTF Misc [GXYCTF2019]SXMgdGhpcyBiYXNlPw== & 间谍启示录 & Mysterious & [UTCTF2020]docx

    目录 GXYCTF2019 SXMgdGhpcyBiYXNlPw 间谍启示录 Mysterious UTCTF2020 docx GXYCTF2019 SXMgdGhpcyBiYXNlPw 下载文件 base64隐写 使用脚本 base64
  • linux下apt-get install软件出现,E: 未发现软件包

    在debian虚拟机中安装库时 总是提示E 未发现软件包 libXtst dev 搜索后发现可能是缺少软件源 打开 etc apt sources list 发现所有语句均被注释 搜索了很多 最后使用的Debian镜像使用帮助的使用样例 在
  • ps如何把人物扣下来

    做前端的难免会自己用上ps 我在网上看了很多关于ps如何把人物扣下来的 我给大家分享一下自己的一些见解 首先打开ps工具 里面放上一张图片 放进去图片之后什么东西都不用动 第二步 shift 键可以扩大选取 ail键可以减小选取 第三步 完
  • 区块链学习笔记(一)

    https zhuanlan zhihu com p 23243289 1 区块的数据结构 区块高度 每个区块的唯一ID 块高度为0的创世块 一段时间生成一个块 高度加1 头哈希 每个区块的唯一哈希值 根据父哈希 数据块哈希 随机数生成 父
  • 程序人生-Hello’s P2P[HITICS-大作业]

    计算机系统 大作业 题 目 程序人生 Hello s P2P 专 业 计算机科学与技术学院 学 号 1180301006 班 级 1803010 学 生 宋永玺 指 导 教 师 史先俊 计算机科学与技术学院 2019年12月 摘 要 一个简
  • Java 中j+=i 和 j=+i 的区别

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 一 j i 意思就是 把i获取到的值与j相加 之后再把值赋给j 更新j的值 换句话说 j j i 写下代码更好的理解一下 Test pu
  • 静态绑定和动态绑定

    对于非虚成员函数 是静态绑定的 而虚函数都是动态绑定 如此才可实现多态性 这也是 语言和其它语言Java Python的一个显著区别 几个名词定义 静态类型 对象在声明时采用的类型 在编译期既已确定 动态类型 通常是指一个指针或引用目前所指
  • vscode按住ctrl+鼠标左键无法跟踪跳转方法名【带vscode编辑PHP的配置教程】

    今天刚装好vscode 发现vscode按住ctrl 鼠标左键无法跟踪跳转方法名 其实就是装一个插件就好了 vscode elm jump 常规的代码跳转定义 Vue CSS Peek 按ctrl可以跳转css定义 vue helper 变
  • ZooKeeper(六)权限管理机制

    一 ZooKeeper权限管理机制 1 1 权限管理ACL Access Control List ZooKeeper 的权限管理亦即ACL 控制功能 使用ACL来对Znode进行访问控制 ACL的实现和Unix文件访问许可非常相似 它使用
  • 【解决】CommandNotFoundError: Your shell has not been properly configured to use conda activate

    在linux系统中 安装了anaconda 配置了conda环境变量 也使用conda命令创建了新的环境my env 但在使用conda激活时 报错 报错问题 输入 conda activate my env 报错 CommandNotFo
  • 快速排序(C语言简单实现)

    快速排序 C语言简单实现 快速排序 Quick Sort 是冒泡排序的升级版 基本思想 通过一趟排序将待排记录分割成独立的两部分 其中一部分记录的关键字均比另一部分记录的关键字小 则可分别对这两部分记录继续进行排序 以达到整个序列有序的目的
  • [ Shell ] 通过 Shell 脚本导出 CDL 网表

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 https b
  • 服务器要如何提高性能

    服务器要如何提高性能 一 将服务器虚拟化 如果同期拥有多个项目 增加额外服务器会显得浪费 成本费用也会大幅度上升 这时不妨通过技术将其划分成多个虚拟空间 而每个空间又可以使用不同操作系统 运行不同应用程序 使得符合项目要求 这种方式通常能增
  • 数字猜谜游戏

    数字猜谜游戏 1 数字猜谜之需求分析 2 在写程序时需要学习的知识 3 数字猜谜之编程思路 4 数字猜谜之程序代码 5 数字猜谜之用户演示 6 数字求和 1 100数字之间的偶数之和 包含1和100 1 100数字之间的奇数之和 包含1和1
  • nginx配置监听443端口,开启ssl协议,走 https 访问

    本文目录 前言 一 检查 linux 服务器上的 nginx 是否安装 ssl 模块 二 为 nginx 安装 ssl 模块 三 nginx 开启 443 端口监听 https配置 成功配好后的效果如下 遇到的问题一 证书无效 遇到的问题二
  • Unity UGUI的RawImage(原始图片)组件的介绍及使用

    Unity UGUI的RawImage 原始图片 组件的介绍及使用 1 什么是RawImage组件 RawImage是Unity UGUI中的一个组件 用于显示原始图片 与Image组件不同 RawImage可以直接显示原始图片的像素数据