unity 把Texture转成Texture2D

 public static void textureToTexture2D (Texture texture, Texture2D texture2D)
        {
            if (texture == null)
                throw new ArgumentNullException ("texture");
            if (texture2D == null)
                throw new ArgumentNullException ("texture2D");

            if (texture.width != texture2D.width || texture.height != texture2D.height)
                throw new ArgumentException ("texture and texture2D need to be the same size.");

            RenderTexture prevRT = RenderTexture.active;

            if (texture is RenderTexture) {
                RenderTexture.active = (RenderTexture)texture;
                texture2D.ReadPixels (new UnityEngine.Rect (0f, 0f, texture.width, texture.height), 0, 0, false);
                texture2D.Apply (false, false);

            } else {
                RenderTexture tempRT = RenderTexture.GetTemporary (texture.width, texture.height, 0, RenderTextureFormat.ARGB32);
                Graphics.Blit (texture, tempRT);

                RenderTexture.active = tempRT;
                texture2D.ReadPixels (new UnityEngine.Rect (0f, 0f, texture.width, texture.height), 0, 0, false);
                texture2D.Apply (false, false);
                RenderTexture.ReleaseTemporary (tempRT);
            }

            RenderTexture.active = prevRT;
        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值