Unity如何在任意区域截屏创建Sprite
发表于:2025-12-06 作者:千家信息网编辑
千家信息网最后更新 2025年12月06日,这篇文章主要介绍Unity如何在任意区域截屏创建Sprite,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Unity截取全屏静帧的方法较为简单这里不作讨论,指定区域截图用到的最
千家信息网最后更新 2025年12月06日Unity如何在任意区域截屏创建Sprite
这篇文章主要介绍Unity如何在任意区域截屏创建Sprite,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Unity截取全屏静帧的方法较为简单这里不作讨论,指定区域截图用到的最主要的方法就是读取屏幕像素:
// // 摘要: // Read pixels from screen into the saved texture data. // // 参数: // source: // Rectangular region of the view to read from. Pixels are read from current render // target. // // destX: // Horizontal pixel position in the texture to place the pixels that are read. // // destY: // Vertical pixel position in the texture to place the pixels that are read. // // recalculateMipMaps: // Should the texture's mipmaps be recalculated after reading? public void ReadPixels(Rect source, int destX, int destY, [DefaultValue("true")] bool recalculateMipMaps); [ExcludeFromDocs] public void ReadPixels(Rect source, int destX, int destY);为了方便调用,写一个扩展协程如下:
public static IEnumerator CutSpriteFromScreen(this RectTransform boxMin, RectTransform boxMax, UnityActioncomplete) {var sp = new Vector2(boxMin.position.x, boxMin.position.y);var temp = new Vector2(boxMax.position.x, boxMax.position.y);Vector2Int size = new Vector2Int((int)(temp.x - sp.x), (int)(temp.y - sp.y));//判断截图框是否超出屏幕边界if (sp.x < 0 || sp.y < 0 || sp.x + size.x > Screen.width || sp.y + size.y > Screen.height)yield break;//等待当前帧渲染结束,此为必须项yield return new WaitForEndOfFrame();Texture2D texture = new Texture2D(size.x, size.y, TextureFormat.RGB24, false);texture.ReadPixels(new Rect(sp.x, sp.y, size.x, size.y), 0, 0, false);texture.Apply();complete(Sprite.Create(texture, new Rect(Vector2Int.zero, size), Vector2.one * .5f));}
调用如下:
StartCoroutine(BoxMin.CutSpriteFromScreen(BoxMax, (x) => GameData.Instance.PlayerData.Bag.FragCutIcon = x));
效果展示:
可以直接将拼好的芯片图截取后保存起来方便在其他界面展示安装效果,省去了每一界面都划格子重新读取数据计算一遍;
因为事实上只有在设置芯片的页面才需要单独对每块芯片进行细致操作,其他位置可以简化为展示一张缩略图;
当芯片的安装发生变化时,同步更新该缩略图即可。
以上是"Unity如何在任意区域截屏创建Sprite"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
芯片
区域
内容
屏幕
截图
效果
方法
界面
篇文章
细致
事实
事实上
价值
位置
像素
兴趣
参数
只有
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器老提醒文件已打开
数据库游标超出范围
网络安全最大项目
大唐豪侠服务器
河南 IPv6根服务器
阿里云服务器双机热备
51sto网络技术联盟站
悟链杭州网络技术有限公司
c 数据库保存视频
服务器装机能力是什么意思
中小学网络安全培训专家
高级软件开发工程师挂靠
华为校招网络安全笔试内容
河南2017网络安全周
数据库onlape
国家网络安全宣传周作业
网络安全协会财务制度
机械3d选型软件开发
江西家用软件开发代理价钱
iotdb时间序列数据库怎么样
福建省一线网络技术
网络安全审计服务
北京千西禾网络技术
数据库中创建成绩表
融众动脉网络安全知识
方舟阿里云服务器卡
魔兽怀旧平衡服务器2022
2021赎金最高网络安全事件
高中网络技术基础电子教材
最新车型数据库