如何将类型'UnityEngineering。纹理2D&转换为'UnityENGIN.Sprite? [英] How convert type 'UnityEngine.Texture2D' to 'UnityEngine.Sprite?

查看:0
本文介绍了如何将类型'UnityEngineering。纹理2D&转换为'UnityENGIN.Sprite?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hi我尝试在Image中转换我的纹理2D(我不能使用Raw Image,因为手机中的分辨率不匹配),但问题是Image没有纹理元素。如何在Image.Sprite中转换UnityEng.Texture2D。

//Image Profile
protected Texture2D pickedImage;
public Texture2D myTexture2D;
public RawImage getRawImageProfile;
public RawImage getRawImageArrayProfile;

public Image getRawImageProfile2;
public Image getRawImageArrayProfile2;

 public void PickImageFromGallery(int maxSize = 256)
{
    NativeGallery.GetImageFromGallery((path) => 
    {
        if( path != null )
        {
            byte[] imageBytes = File.ReadAllBytes(path);
            pickedImage = null;
            pickedImage = new Texture2D(2, 2);
            pickedImage.LoadImage(imageBytes);
            getRawImageProfile.texture = pickedImage;
            getRawImageArrayProfile.texture = pickedImage;

            getRawImageProfile2.sprite = pickedImage; //ERROR CONVERT SPRITE
            //getRawImageArrayProfile2.texture = pickedImage;
        }

    }, maxSize: maxSize);

    byte[] myBytes;
    myBytes = pickedImage.EncodeToPNG();
    enc = Convert.ToBase64String(myBytes);       
}

推荐答案

Sprite.Create完全符合您的要求。

来自Sprite上的Unity docs。创建:

Sprite.Create创建可在游戏应用程序中使用的新Sprite。需要加载纹理并将其分配给Create,才能控制新Sprite的外观。

在代码中:

public Texture2D myTexture2D; // The texture you want to convert to a sprite
Sprite mySprite; // The sprite you're gonna save to
Image myImage; // The image on which the sprite is gonna be displayed

public void FooBar()
{
    mySprite = Sprite.Create(myTexture2D, new Rect(0.0f, 0.0f, myTexture2D.width, myTexture2D.height), new Vector2(0.5f, 0.5f), 100.0f);
    myImage.sprite = mySprite; // apply the new sprite to the image

}
在上面的示例中,我们从myTexture2D中获取图像数据,并使用每单位100个像素创建一个与原始纹理2D相同大小的new Rect,其轴心点在中心。然后,我们将新制作的精灵应用于图像。

这篇关于如何将类型'UnityEngineering。纹理2D&转换为'UnityENGIN.Sprite?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆