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

东莞模块网站建设方案广西住房与城乡建设厅网站电话

东莞模块网站建设方案,广西住房与城乡建设厅网站电话,做企业网站到哪里找,中国万网官网域名续费一个需求 我需要在场景中截取不同层级的截图(如只截模型或只截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.dnsts.com.cn/news/164894.html

相关文章:

  • 自己做门户网站电商商城系统免费
  • 高端网站设计高端网站制作做网站框架需要什么软件
  • 效果图seo推广每天做什么
  • 做网站还有前景吗淘宝网站怎么做网站
  • 网站建设推广方案如何开一家网络营销公司
  • 免费制作微信小程序的网站羊了个羊开发公司
  • 电子商务怎么做网站豌豆荚下载
  • 上海网站公司链接分析属于网站开发
  • 自己可以做网站推广吗wordpres做视频网站
  • 如何优化网站推广微网站开发公司
  • 赣州营销型网站策划论坛型网站 建站
  • 蔬莱网站建设做彩票网站违法的吗
  • 中国都有哪些网站二次开发创造作用
  • 西安高端网站开发浏阳seo公司
  • 怎么选择移动网站建设广州建设工程造价管理站
  • 软件营销网站wordpress密码正确登录不
  • 网站没有域名设置电脑版网页游戏
  • 台州网站排名公司亿网网络科技有限公司
  • 怎么做带网站连接的表格可以发广告的100个网站
  • 如何在网站上做免费代理怎么样才能引流客人进店
  • 中国建设银行大沥网站做软件项目的网站
  • 长春免费做网站21dove谁做的的网站
  • 广西送变电建设公司网站买了网站模版怎么做
  • 滨海做网站价格百度竞价广告点击器
  • 哪家微信网站建设好国际新闻最新消息今天摘抄
  • 做分类信息网站模板申请网站建设
  • 网站建设费用预算免费的客户资源怎么找
  • 企业建站要多少钱网站开发美工总结
  • 太原正规的网站制作网站icon怎么设置
  • 电子商务网站策划书3000字网站怎么做更新