注册 登录
主题 : 请教。unity如何实现翻转Texture类型的图片
级别: 精灵王
UID: 9972
精华: 0
发帖: 661
可可豆: 7331 CB
威望: 7331 点
在线时间: 301(时)
注册时间: 2009-10-22
最后登录: 2017-04-16
0 楼:  发表于: 2012-01-25 09:52    发自: Web Page
来源于 模型与贴图 分类

请教。unity如何实现翻转Texture类型的图片   

我找到了旋转图片的方法。
GUIUtility.RotateAroundPivot

请问平翻图片如何实现。

级别: 新手上路
UID: 87123
精华: 0
发帖: 28
可可豆: 280 CB
威望: 280 点
在线时间: 9(时)
注册时间: 2011-08-14
最后登录: 2013-03-18
1 楼:  发表于: 2012-02-15 15:22    发自: Web Page
意思是镜像吧?
级别: 新手上路
UID: 124175
精华: 0
发帖: 2
可可豆: 20 CB
威望: 20 点
在线时间: 0(时)
注册时间: 2012-02-17
最后登录: 2012-03-06
2 楼:  发表于: 2012-02-17 11:21    发自: Web Page
直接给你写段代码吧. 如果你是想对资源图片进行镜像处理的话.    不过这样做的话会比较吃CPU,如果是游戏中的即时渲染建议你另寻他法.

private Texture2D MirPic(string path , string textureName )
{

         Texture2D texture2d =(Texture2D )Resources.Load(path + "/" + textureName, typeof(Texture2D)) //获取原图片

         int width = texture2d.width;//得到图片的宽度.   

         int height = texture2d.height;//得到图片的高度

         Texture2D NewTexture2d = new Texture2D(width, height);//创建一张同等大小的空白图片 

         int  i_start = 0; 

         while( i_start  <width  )//如果是垂直翻转的话将width  换成 height 
         {
                 start++;
                 NewTexture2d.SetPixels(start, 0, 1, height, texture2d.GetPixels(width - start - 1, 0, 1, height));
          }
         NewTexture2d.Apply();

         return NewTexture2d;
}

级别: 精灵王
UID: 9972
精华: 0
发帖: 661
可可豆: 7331 CB
威望: 7331 点
在线时间: 301(时)
注册时间: 2009-10-22
最后登录: 2017-04-16
3 楼:  发表于: 2012-02-17 17:34    发自: Web Page
谢谢,我后来自己解决了这个问题,不过还是非常感谢你的热心解答啊
级别: 新手上路
UID: 524458
精华: 0
发帖: 46
可可豆: 109 CB
威望: 109 点
在线时间: 27(时)
注册时间: 2015-11-18
最后登录: 2017-09-21
4 楼:  发表于: 2016-05-28 17:48    发自: Web Page
3楼有点小错误,修改一下——
    //水平翻转图片
    public static Texture2D horizontalFlipPic(Texture2D texture2d)
    {
        int width = texture2d.width;//得到图片的宽度.  
        int height = texture2d.height;//得到图片的高度

        Texture2D NewTexture2d = new Texture2D(width, height);//创建一张同等大小的空白图片

        int i = 0;

        while (i < width)
        {
            NewTexture2d.SetPixels(i, 0,1, height, texture2d.GetPixels(width - i - 1, 0, 1, height));
            i++;            
        }
        NewTexture2d.Apply();

        return NewTexture2d;
    }

    //垂直翻转图片
    public static Texture2D verticalFlipPic(Texture2D texture2d)
    {
        int width = texture2d.width;//得到图片的宽度.  
        int height = texture2d.height;//得到图片的高度

        Texture2D NewTexture2d = new Texture2D(width, height);//创建一张同等大小的空白图片

        int i = 0;

        while (i < height)
        {
            NewTexture2d.SetPixels(0, i, width, 1, texture2d.GetPixels (0,width - i - 1, width, 1));
            i++;
        }
        NewTexture2d.Apply();

        return NewTexture2d;
    }
级别: 新手上路
UID: 617886
精华: 0
发帖: 2
可可豆: 2 CB
威望: 2 点
在线时间: 0(时)
注册时间: 2017-07-03
最后登录: 2017-07-03
5 楼:  发表于: 2017-07-03 09:46    发自: Web Page
回 3楼(天天向上) 的帖子
我也遇到了镜像翻转,请问你是怎么解决的呢?
级别: 新手上路
UID: 617886
精华: 0
发帖: 2
可可豆: 2 CB
威望: 2 点
在线时间: 0(时)
注册时间: 2017-07-03
最后登录: 2017-07-03
6 楼:  发表于: 2017-07-03 10:16    发自: Web Page
回 3楼(天天向上) 的帖子
请问你是如何解决的?
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部