首页 > 其他分享 >Unity UGUI的RawImage(原始图片)组件的介绍及使用

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

时间:2023-07-24 19:55:23浏览次数:46  
标签:rawImage texture RawImage Unity 组件 UGUI public 图片

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项目中。

参考资料

标签:rawImage,texture,RawImage,Unity,组件,UGUI,public,图片
From: https://www.cnblogs.com/alianblank/p/17578172.html

相关文章

  • UnityHub AndroidSDKManager在哪
    UnityHubAndroidSDKManager在哪引言作为一名经验丰富的开发者,我很乐意教会你如何在UnityHub中找到AndroidSDKManager。在本文中,我将详细介绍整个过程,并提供每个步骤所需的代码和注释。过程概述在UnityHub中找到AndroidSDKManager可以让我们更方便地管理Android开发所需的SDK和......
  • Unity3D 使用带刚体组件的预制体配合脚本自动生成一面墙时上层墙体被弹飞
    异常效果如下图所示:预制体是一个正方体(Cube),其参数设置如下图所示:控制墙面生成的C#脚本如下所示:usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassWall:MonoBehaviour{publicTransformbrick;//Usethisf......
  • Unity3D 自定义类的数组初始化
    实现功能:1.自定义类,用于保存数据等2.初始化数组代码:publicclasstree_elem{//位置publicintx,y;//大小【相对于原始大小的比例】最后随机分配publicfloatsize;//树的类型,最后随机分配publictree_kindkind;publictree_ele......
  • Unity UGUI的RectMask2D(2D遮罩)组件的介绍及使用
    UnityUGUI的RectMask2D(2D遮罩)组件的介绍及使用1.什么是RectMask2D组件?RectMask2D是UnityUGUI中的一个组件,用于实现2D遮罩效果。它可以限制子对象在指定的矩形区域内显示,超出区域的部分将被遮罩隐藏。2.RectMask2D的工作原理RectMask2D组件通过裁剪子对象的渲染区域来实现......
  • Unity UGUI的LayoutElement(布局元素)组件的介绍及使用
    UnityUGUI的LayoutElement(布局元素)组件的介绍及使用1.什么是LayoutElement组件?LayoutElement是UnityUGUI中的一个布局元素组件,用于控制UI元素在布局中的大小和位置。它可以用于自动调整UI元素的大小,以适应不同的屏幕分辨率和布局需求。2.LayoutElement组件的工作原理Layou......
  • unity与python通信
    Unity与Python通信Unity是一款功能强大的游戏开发引擎,而Python是一种简单易学的编程语言。将这两者结合起来可以实现更多有趣的功能。本文将介绍如何在Unity中与Python进行通信,并提供代码示例。Unity端设置首先,在Unity中需要安装Python插件。可从UnityAssetStore中下载并导入"......
  • Unity编辑模式 一键获取Tilemap的格子信息
    动机由于地图是使用unitytilemap编辑的,服务端也希望获取一份相关的信息。相较于自己写个编辑器,直接利用unity的能力会更加敏捷。效果展示只需要将组件拖拽到含有Tilemap组件的GameObj上面,就可以点击按钮,获取格子信息。源码展示[CustomEditor(typeof(TilemapTool))][CanEdi......
  • Unity3D 播放运行时游戏对象往上飞了
    我的原因是不小心给主摄像机(MainCamera)添加了刚体(Rigidbody)组件,导致播放运行时摄像机受重力作用往下掉,造成游戏(Game)视图窗口内看见的游戏对象往上飞了!如下图所示: 把挂在摄像机的上刚体(Rigidbody)组件移除即可!~......
  • Unity UGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用
    UnityUGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用1.什么是VerticalLayoutGroup组件?VerticalLayoutGroup是UnityUGUI中的一种布局组件,用于在垂直方向上自动排列子对象。它可以根据子对象的大小和布局设置,自动调整子对象的位置和大小,实现垂直布局效果。2.VerticalLay......
  • Unity UGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用
    UnityUGUI的VerticalLayoutGroup(垂直布局)组件的介绍及使用1.什么是VerticalLayoutGroup组件?VerticalLayoutGroup是UnityUGUI中的一种布局组件,用于在垂直方向上自动排列子对象。它可以根据子对象的大小和布局设置,自动调整子对象的位置和大小,实现垂直布局效果。2.VerticalLayo......