当前位置: 首页 > news >正文

做好网站怎么做app福建省建设厅网站 登录

做好网站怎么做app,福建省建设厅网站 登录,网站图片如何做防盗链,个人电商怎么做原因 想要在编辑器扩展也能访问FairyGUI图集里面的小图,随便找了一下没有找到接口自己做一个 方法 使用UIPackage.GetItemByURL获得小图信息。从图集中复制出小图,如果有旋转就逆旋转90度即可 图集里面的小图是有可能旋转的,可以通过访问 …

原因

想要在编辑器扩展也能访问FairyGUI图集里面的小图,随便找了一下没有找到接口自己做一个

方法

使用UIPackage.GetItemByURL获得小图信息。从图集中复制出小图,如果有旋转就逆旋转90度即可
图集里面的小图是有可能旋转的,可以通过访问 NTexture.rotated 判断在图集中是否旋转

获取小图在图集中的起始位置

X偏移坐标可以直接 uvRect.min.x * nativeTexture.width 得到真实的X偏移
Y坐标可以根据uvRect赋值反过来获得,原有公式是

uvRect.min.y = 1 - region.yMax / _nativeTexture.height

那么真实的公式就是

y = (1 - startOffset.y) * nativeTexture.height - textureSize.y

无非就是交互律。还原public NTexture(Texture texture, Rect region) 构造传入来的region参数

获得偏移和大小后只需要使用RenderTexture把小图读出来就好

        RenderTexture renderTex = RenderTexture.GetTemporary(nativeTexture.width, nativeTexture.height, 24, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);Graphics.Blit(nativeTexture, renderTex);RenderTexture previous = RenderTexture.active;RenderTexture.active = renderTex;Texture2D resultTexture = new Texture2D(textureSize.x, textureSize.y, nativeTexture.format, false);resultTexture.ReadPixels(new Rect((int)startOffset.x, (int)startOffset.y, textureSize.x, textureSize.y), 0, 0);resultTexture.Apply();RenderTexture.active = previous;RenderTexture.ReleaseTemporary(renderTex);

图集中的小图是会旋转的应该如何还原

Texture2D.GetPixel 和 Texture2D.SetPixel 接口读写非常慢
可以直接使用GetPixelData或者GetPixels导出图像数据数组,操作完成后刷新图像数据
根据 nativeTexture.format 类型使用Color或者Color32格式读取

var colorArray = resultTexture.GetPixelData<Color32>(0)

有数组后简单逆旋转90数组数据,就可以得到原来的小图

for (int i = 0; i < textureSize.x; i++)
{for (int j = 0; j < textureSize.y; j++){colors[i * textureSize.y + j] = colorArray[textureSize.x - 1 - i + j * textureSize.x];}
}

完整代码

    public Texture GetTexture(string url){PackageItem packageItem = UIPackage.GetItemByURL(url);if (packageItem == null)return null;NTexture nTexture = packageItem.texture;Texture2D nativeTexture = nTexture.nativeTexture as Texture2D;var startOffset = nTexture.uvRect.min;var textureSize = new Vector2Int(nTexture.width, nTexture.height);if (nTexture.rotated)textureSize = new Vector2Int(nTexture.height, nTexture.width);startOffset.x *= nativeTexture.width;startOffset.y = (1 - startOffset.y) * nativeTexture.height - textureSize.y;RenderTexture renderTex = RenderTexture.GetTemporary(nativeTexture.width, nativeTexture.height, 24, RenderTextureFormat.Default, RenderTextureReadWrite.Linear);Graphics.Blit(nativeTexture, renderTex);RenderTexture previous = RenderTexture.active;RenderTexture.active = renderTex;Texture2D resultTexture = new Texture2D(textureSize.x, textureSize.y, nativeTexture.format, false);resultTexture.ReadPixels(new Rect((int)startOffset.x, (int)startOffset.y, textureSize.x, textureSize.y), 0, 0);resultTexture.Apply();RenderTexture.active = previous;RenderTexture.ReleaseTemporary(renderTex);if (nTexture.rotated){var colorArray = resultTexture.GetPixelData<Color32>(0);Texture2D rotationTexture = new Texture2D(textureSize.y, textureSize.x, nativeTexture.format, false);var colors = rotationTexture.GetPixelData<Color32>(0);for (int i = 0; i < textureSize.x; i++){for (int j = 0; j < textureSize.y; j++){colors[i * textureSize.y + j] = colorArray[textureSize.x - 1 - i + j * textureSize.x];}}rotationTexture.SetPixelData(colors, 0);rotationTexture.Apply();Object.Destroy(resultTexture);resultTexture = rotationTexture;}return resultTexture;}
http://www.yayakq.cn/news/634802/

相关文章:

  • 企业网站建设定位注意的问题电商平台哪个最好
  • 企业做不做网站的坏处张雪峰谈广告类专业
  • 织梦网站底端的怎么删除eclipse网站开发流程
  • 企业网站的设计策划在线教育平台
  • 江苏华建建设股份有限公司网站o2o网站设计公司
  • 营销推广网站建设欧洲外贸网站有哪些
  • 网站哪家好成都设计公司deanzhang
  • 平台类网站建设方案专业网站seo优化公司
  • 广州海珠网站开发方案衡水建设企业网站
  • 做网络作家哪个网站好做网站编辑有前途
  • 济南网络营销网站建设公司展厅装修
  • 网站建设工作都包括哪些方面wordpress 媒体库权限
  • 招聘网站设计方案wordpress签到用户中心插件
  • 网站运营主要是做什么wordpress注册数字加字母随机数
  • 响应式网站建设开发公司小程序开发平台排行
  • 网站+做+app一个网站需要几个人
  • 服装网站建设项目实施报告范文安徽城乡住房建设厅网站
  • 龙华龙岗网站建设公司应用商城app下载
  • 做漆包线的招聘网站网站建设框架文案
  • 网站百度推广wordpress上删除主题
  • wordpress 购物导航网站天津百度建网站
  • 网站空间代理加盟全网营销全网推广
  • 广州网站服务医疗网站备案
  • linux网站开发网页免费游戏
  • 怎样学做网站怎么制作网站弹出广告
  • 怎么利用网站开发app在西部数码上再备案一个网站ftp
  • 中国亚马逊网站建设城乡住建局官网
  • 怎么建立自己网站 asp动物网站建设
  • 建筑网站的设计与实现的论文小程序开发定制制作
  • 东莞微信网站建设信息百度权重查询爱站网