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

东莞企业推广网站网站网站建设平台

东莞企业推广网站,网站网站建设平台,济南学网站建设哪里好,WordPress跨机房同步一个需求 我需要在场景中截取不同层级的截图(如只截模型或只截UI或只截外部相加看到的画面 或全都截或和Shader配合呈现人眼夜视仪热成像的画面切换) 将截图排到列表中#xff0c;在场景UI中展示出来 如何做 相机要能够看到不同的画面 将当前帧画面存储下来 将存储的画面展示出… 一个需求 我需要在场景中截取不同层级的截图(如只截模型或只截UI或只截外部相加看到的画面 或全都截或和Shader配合呈现人眼夜视仪热成像的画面切换) 将截图排到列表中在场景UI中展示出来 如何做 相机要能够看到不同的画面 将当前帧画面存储下来 将存储的画面展示出来 知识点代码 https://developer.unity.cn/projects/64ca2cbbedbc2a00187ba6d6 下面继续 做一个练习 截屏细节 轮廓UI 全部三张图分别展示出来 首先给游戏对象分好类 简单设计一下UI截图功能会在此操作截图会在此展示 三个相加分别是Main 场景的主相机DesktopUI界面UI专门展示的相机 CamTexture专门用来截图操作的相机平时不打开只在截图时候打开截这个相机渲染的画面 CamTexture想要渲染不同的画面就要对他进行不同的设置 publicclassCtrlScreenShot:MonoBehaviour{//相机渲染[Header(可用渲染内容的相机)]publicCameracameraToChange;[Header(具体渲染的Layers)]publicLayerMaskCullingLayers0;publicLayerMaskCullingLayers1;publicLayerMaskCullingLayers2;// 照片存储的位置publicTransformPhotenRoot;//截图的大小模板(在场景中透明显示就行为的就是截图时候按照这个UI的大小去截图)publicRectTransformUIRect;//LayerMaskCullingLayers;TransformphotenPos;stringphotenName;publicvoidCtrlScreenShotBtFc(intbutint){switch(butint){case0:CullingLayers CullingLayers0;//相机渲染显示的LayersphotenPos PhotenRoot.GetChild(0).transform;//截图显示的位置break;case1:CullingLayers CullingLayers1;//相机渲染显示的LayersphotenPos PhotenRoot.GetChild(1).transform;//截图显示的位置break;case2:CullingLayers CullingLayers2;//相机渲染显示的LayersphotenPos PhotenRoot.GetChild(2).transform;//截图显示的位置break;default:break;}StartCoroutine(StartScreenShot());}///IEnumeratorStartScreenShot(){cameraToChange.cullingMask 0;//全部剔除cameraToChange.cullingMask CullingLayers;//显示选择的LayerscameraToChange.gameObject.SetActive(true);photenName System.DateTime.Now.ToString(yyyyMMddHHmmss).png;//截图的名字stringfileName Application.dataPath /StreamingAssets/photenName;//系统不识别标点符号但支持中文yieldreturnStartCoroutine(CaptureByUI(UIRect,fileName));// 拼接图片路径stringimagePath System.IO.Path.Combine(Application.streamingAssetsPath,photenName);// 开始协程加载图片yieldreturnStartCoroutine(LoadImage(imagePath,photenPos));cameraToChange.gameObject.SetActive(false);}/// summary/// 保存截图并保存成png格式文件/// /summary/// param nameUIRect/param屏幕截图的大小尺寸规范 是个透明的imageUI/// param namemFileName/param将截图转换成的png文件保存的位置和命名/// returns/returnsIEnumeratorCaptureByUI(RectTransformUIRect,stringmFileName){yieldreturnnewWaitForEndOfFrame();//等待当前帧的UI渲染完成//计算截图的宽度和高度intwidth (int)(UIRect.rect.width);intheight (int)(UIRect.rect.height);//创建一个新的Texture2D对象宽度和高度与截图的宽度和高度匹配Texture2Dtex newTexture2D(width,height,TextureFormat.RGB24,false);//计算从屏幕上读取像素的起始位置floatleftBtmX UIRect.transform.position.x UIRect.rect.xMin;floatleftBtmY UIRect.transform.position.y UIRect.rect.yMin;//使用tex.ReadPixels()函数从屏幕上读取指定区域的像素并存储到Texture2D中。tex.ReadPixels(newRect(leftBtmX,leftBtmY,width,height),0,0);//执行读取操作,将修改应用到Texture2D中tex.Apply();//将Texture2D编码为PNG格式的字节数组byte[]bytes tex.EncodeToPNG();//将字节数组保存为PNG图片文件System.IO.File.WriteAllBytes(mFileName,bytes);}/// summary/// 将保存的png根据名字在界面上相对位置展示出来/// /summary/// param namepath/param/// returns/returnsIEnumeratorLoadImage(stringpath,TransformphotenPos){// 发送请求获取图片UnityWebRequestwww UnityWebRequestTexture.GetTexture(path);yieldreturnwww.SendWebRequest();// 检查请求是否成功if(www.result UnityWebRequest.Result.Success){// 获取加载的TextureTexture2Dtexture DownloadHandlerTexture.GetContent(www);//创建一个RawImage并放在其位置GameObjectuiObject newGameObject();uiObject.transform.parent photenPos.transform;RectTransformrectTransform uiObject.AddComponentRectTransform();CanvasRenderercanvasRenderer uiObject.AddComponentCanvasRenderer();RawImagerawImage uiObject.AddComponentRawImage();// 将加载的Texture赋值给RawImage的texture属性rawImage.texture texture;// 调整RawImage的大小以适应图片的长宽比例rawImage.SetNativeSize();// 获取父级图像的宽度floatparentWidth rawImage.transform.parent.GetComponentRectTransform().rect.width;// 计算图像的长宽比floataspectRatio (float)rawImage.texture.height /rawImage.texture.width;// 计算应用于图像的新高度floatnewHeight parentWidth *aspectRatio;// 设置图像的宽度和高度rawImage.rectTransform.sizeDelta newVector2(parentWidth,newHeight);// 将图像的位置设置为零rawImage.rectTransform.localPosition Vector3.zero;// 将图像的缩放设置为1rawImage.rectTransform.localScale Vector3.one;}else{Debug.LogError(Failed to load image: www.error);}}} 用这样的方式在AR里也可以实现拍照的功能 可以切换截取的是现实的或虚拟加现实的等
http://www.hkea.cn/news/14294106/

相关文章:

  • 安徽省建设厅网站备案电脑前端主要做什么
  • 必应搜索引擎网站网易163邮箱登录入口
  • 做网站的图片一般放哪wordpress 开源 小程序
  • 东风多利卡道路清障车做网站北京icp网站备案
  • 网站建设一般做什么上海交通大学毕业设计网站
  • 怎么做安居客网站怎么网上推广自己的门店
  • wordpress整站密码做信息采集的网站
  • 佛山seo整站优化建设银行网站会员用户名格式
  • 专业营销型网站惠州h5网站建设
  • 淮北网站建设求职简历南宁网站建设多少钱
  • 临海市网站建设服务好 售后好的网站建设
  • 国内服务器做网站要备案wordpress datediff
  • 在哪个网站做视频赚钱西安响应式网站建设哪家强
  • asp网站管理系统石家庄网站制作报价
  • 网站开发的常用软件重庆网络学院官网
  • 宁波网站设计价格网站如何上传到主机
  • 北京模板建站设计青浦做网站
  • 公司门户网站建设费计入什么科目新乡外贸网站建设
  • 安徽网站制作公司电子商务网站建设.pdf
  • 品牌网站设计公司价格网站弹出的对话框怎么做
  • 网站建设要懂哪些技术wordpress和python
  • 国外网站建设嫣语赋山东济宁做网站的公司有哪些
  • 中国空间站设计在轨飞行多少年wordpress站外连接
  • 建立一个做笔记的网站公司让我做网站负责人
  • 济南网站建设推广报价杭州网络推广外包
  • 自学做网站一般要多久做网页价格
  • 昌邑市建设局网站食品电子商务网站建设规划书
  • linux建设一个网站网络服务机构的网站
  • 做的好的网站营销微信公众号新开传奇网站站
  • seo推广有用吗seo对网站的作用