博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Unity中UI中的RawImage节点以及制作地图滚动效果
阅读量:6680 次
发布时间:2019-06-25

本文共 1979 字,大约阅读时间需要 6 分钟。

一、贴图的Texture Type属性类型

Texture:会把贴图的大小转换为最相近的2的n次方,比如400X1369会转换为512X1024。

Sprite 2D:是贴图的原始大小。

 

 

二、RawImage的UI节点

1.创建一个RawImage类型的UI节点,贴图属性是Texture,与Image是不一样的,Image是Sprite2D类型的。

2.RawImage比Image多一个Raw Image组件,里面的UV rect属性是比较特殊的。

3.UV rect的x,y的意思就是从贴图的哪个地方开始显示在Canvas中的。以左下角为(0,0),右上角为(1,1)。

如果是x,y是(0,0.5),表示从贴图的中部(0,0.5)的坐标开始往上和往右显示,超出的部分有两种模式来填补,受贴图的Wrap Mode属性影响,Clamp表示用最后的像素填充,另一种是Repeat表示从头开始贴,Sprite类型的只能Clamp。

4.UV rect的w,h的意思就是显示在Canvas中的大小,以左下角为(0,0),右上角为(1,1),如果是w,h是(0.5,0.5),表示在Canvas中显示原来贴图的四分之一。

 

 

三、Image和RawImage区别和优势

区别:

1.Sprite 只能用在 Image 组件上,做2D and UI;

2.Sprite可以做九宫格;
3.Sprite一般用在小图.可以打Atlas(图集);
4.Texture基于纹理寻址模式,不能打包Atlas;
5. UI 需要修改UV rect和用到寻址模式的,用Texture,否则用Sprite;

优势:

1.Image有Image的优势,Image可以九宫格拉伸。

2.RawImage有RawImage的优势,RawImage可以UV rect贴图的纹理寻址。

3.一般用Image,除了地图寻址,滚动之类的,从贴图哪个位置开始显示。

 

 

四、RawImage应用--飞行类游戏场景的滚动效果

1.创建一个叫做sky的RawImage的UI节点。

2.把Texture类型的贴纸拖进sky节点的RawImage组件的Teture属性中。贴图必须是Texture类型的,不能是Sprite2D,Sprite2D会有空白。而且Wrap Mode必须是Repeat,不然会把最后一行的像素重复显示。

2.设置sky节点的Scale,x和y都设置为1.25,覆盖好Canvas。只有x,y相同才能不变形。

3.创建一个叫sky的脚本,挂载到sky节点下。

4.sky脚本代码

using UnityEngine;using System.Collections;using UnityEngine.UI;public class sky : MonoBehaviour {    RawImage img;    float speed = 0.1f;    // Use this for initialization    void Start () {        this.img = this.GetComponent
(); } // Update is called once per frame void Update () { float s = this.speed * Time.deltaTime; Rect r = this.img.uvRect; r.y += s; this.img.uvRect = r; }}

5.可以实现地图的滚动

 

 

五、创建完一个Canvas后需要做的事情

1.把Canvas节点的Canvas组件的Render Mode改为Screen Space-Overlay

2.把Canvas节点的Canvas Scaler组件的UI Scale Mode改为Scale With Screen Size

3.把Canvas节点的Canvas Scaler组件的Reference Resolution改为640X960

4.把Canvas节点的Canvas Scaler组件的Match拉到Width那一边

5.把Canvas节点的Canvas Scaler组件的Reference Pixels Per改为100

 

注意:Canvas节点的Canvas组件的Render Mode为Screen Space-Overlay时是绘制不出带材质球的UI节点,必须换成Screen Space-Camera,并且把Main Camera拉到Canvas节点的Canvas组件的Render Camera属性中才会显示。

转载地址:http://ftnao.baihongyu.com/

你可能感兴趣的文章
java基础学习总结——Object类
查看>>
(转)2009-05-25 22:12 Outlook2007选择发送帐号
查看>>
WPF合并资源字典
查看>>
SPOJ 3273 - Order statistic set , Treap
查看>>
samba客户端配置及实例应用详解
查看>>
设计模式 -- 单例模式(Java&&PHP)
查看>>
安卓高手之路之 WindowManager
查看>>
监视键盘来获得密码
查看>>
Android 安装和启动另外一个应用
查看>>
Spark学习体系
查看>>
SD卡路径问题以及如何获取SDCard 内存
查看>>
程序员面试笔试宝典学习记录(七)(海量数据相关知识)
查看>>
公租自行车-北京经济技术开发区
查看>>
Android面试,IntentService的原理及使用
查看>>
IIS下浏览指定文件(如:web.config)
查看>>
[深入浅出WP8.1(Runtime)]应用实例——移动截图
查看>>
hdu 4770(枚举 + dfs爆搜)
查看>>
iPhone 6 首发无大陆,DevStore要去香港吗?
查看>>
理解class.forName()
查看>>
web系统架构的演进变化很形象
查看>>