一:Image和Raw Image

Unity中的Image和Raw Image_经验分享
Source Image:只支持Sprite类型的图片
Color:给图片混合上颜色
Material:材质(一些特殊情况需要使用材质)
Raycast Target:是否接收射线检测
Image Type:图片类型(普通,九宫切图,平铺,填充)
Preserve Asprect:是否保持宽高比
Set Native Size:设置元素为原本的像素大小

Unity中的Image和Raw Image_经验分享_02
Texture:支持任何一种贴图模式,包括Render Texture和Movie Texture(Texture类型会将贴图宽和高转换为2的n次幂,Sprite类型不会对宽和高进行自动拉伸,可以在Inspector—Advanced—Non—Power of 2选择是否进行转换)
Color:给图片混合上颜色
Material:材质(一些特殊情况需要使用材质)
Raycast Target:是否接收射线检测
UV Rect:设置UV缩放和偏移(x和y属性用于控制UV左右、上下偏移,W和H属性用于控制UV的重复次数)
Set Native Size:设置元素为原本的像素大小


二 :Image的Image Type属性

例如一张这样的图片,正常表现如下:
Unity中的Image和Raw Image_# Unity相关技术_03

——Simple
图片会进行随意拉伸,会变形,可以勾选上PreserveAspect按原宽高比进行拉伸
Unity中的Image和Raw Image_经验分享_04


——Sliced
图片会按照Sprite Editor中的九宫格进行拉伸处理
Unity中的Image和Raw Image_经验分享_05
1,3,7,9区域不会进行拉伸,2和8区域会横向拉伸,4和6区域会纵向拉伸,5区域横纵都会拉伸


——Tilled
图片本身大小会保持不变,像铺地面砖那样填充满整个Image控件
Unity中的Image和Raw Image_经验分享_06


——Filled
图片以不同的方式呈现出来,例如技能冷却,血条,进度条
Unity中的Image和Raw Image_经验分享_07     Unity中的Image和Raw Image_# Unity相关技术_08


三:Raw Image的UV Rect

例如一张这样的图片,正常表现如下:
Unity中的Image和Raw Image_# Unity相关技术_09

将x设置为0.5,图片将会进行横向一半的偏移
Unity中的Image和Raw Image_经验分享_10


将w设置为2,横向将可以显示两张原始图片
Unity中的Image和Raw Image_# Unity相关技术_11
可以在Import Settings中的Wrap Model设置循环的模式,Repeat模式可以用于2D游戏的背景图循环


四:Sprite图集的使用

Build Settings—Player Settings—Editor—Sprite Packer设置Mode为Always Enabled
在Project面板下新建一个文件夹放入将要打包成图集的图片(只有Sprite模式的图片才可以打包成图集)
在Project面板下新建一个Sprite Atlas,选择打包图集的文件夹或者依次添加单独图片,点击Pack Preview后自动打包成一个图集
Unity中的Image和Raw Image_经验分享_12
代码获取图集并动态选择Sprite:

using UnityEditor;
using UnityEngine;
using UnityEngine.U2D;
using UnityEngine.UI;

public class SpriteAtlasExample : MonoBehaviour
{
    private void Awake()
    {
        SpriteAtlas atlas = AssetDatabase.LoadAssetAtPath<SpriteAtlas>("Assets/TestAtlas.spriteatlas");
        Sprite sprite = atlas.GetSprite("Icon2");
        if (sprite != null)
        {
            GetComponent<Image>().sprite = sprite;
        }

    }
}

Build Settings—Player Settings—Editor—Sprite Packer设置Mode为Always Enabled(Legacy Sprite Packer)可以使用旧版的图集打包系统进行图集打包,选择Window—2D—Sprite Packer通过不同的标签进行打包
Unity中的Image和Raw Image_# Unity相关技术_13