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

怎么改版网站最新手机网站推荐

怎么改版网站,最新手机网站推荐,哪里注册域名最便宜,网站伪静态好还是静态好推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群#xff1a;398291828小红书小破站 大家好#xff0c;我是佛系工程师☆恬静的小魔龙☆#xff0c;不定时更新Unity开发技巧#xff0c;觉得有用记得一键三连哦。 一、前言 Unity3D发布的WEBGL程序是不支持直接的I/O操… 推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群398291828小红书小破站 大家好我是佛系工程师☆恬静的小魔龙☆不定时更新Unity开发技巧觉得有用记得一键三连哦。 一、前言 Unity3D发布的WEBGL程序是不支持直接的I/O操作所以也就不能直接访问用户电脑的文件。 但是也是有办法去访问电脑中的文件打开文件的。 比如情况一如果知道电脑文件在什么位置、什么名字。 可以参考这篇文章 【Unity3D小技巧】Unity3D中打包WEBGL后读取本地文件数据 情况二知道要上传什么类型的文件但是需要弹出窗口来选择文件并打开。 这篇文章就来讨论一下WEBGL打开Window文件对话框并打开文件后上传文件显示图片/文本。 二、实现过程 先来看一下效果 2-1、实现分析 既然Unity3D没办法直接进行I/O操作但是JavaScript可以进行I/O操作那是不是就可以让Unity跟JS进行通信来进行操作。 JavaScript打开文件的代码很简单 input typefile //input那么就可以用Unity的按钮去调用这个组件从这个组件中获取到文件流。 OK理论存在实践开始。 2-2、Unity3D中做的准备 1在Unity的工程中新建Plugins文件夹 2在里面新建WebGl.jslib文件编辑代码这个文件是JS与WEBGL交互用的。 详情参照Unity官网https://docs.unity3d.com/Manual/webgl-interactingwithbrowserscripting.html 文件里面的内容如下 mergeInto(LibraryManager.library, {clickSelectFileBtn:function () {console.log(Enter);clickSelectFileBtn();}, });3搭建Unity程序 一个Button用来响应Js函数一个Image用来显示图片Text用来显示文本内容。 3在Hierarchy视图新建一个Scripts对象名字需要跟我一样因为后面要跟js脚本挂载脚本脚本名随意 using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.Events; using UnityEngine.Networking; using UnityEngine.UI;public class ReceiveDataHandle : MonoBehaviour {public Button BtnLoad;public Image showImg;public Text showText;[DllImport(__Internal)]private static extern void clickSelectFileBtn();/// summary/// 点击Open按钮/// /summarypublic static void BtnLoadEvent(){clickSelectFileBtn();}void Start(){BtnLoad.onClick.AddListener(BtnLoadEvent);}/// summary/// 接收base64字符串/// /summary/// param namebase64Str/parampublic void GetBase64(string base64Str){Debug.Log(base64Str);string[] split base64Str.Split(|);if (split[0].Contains(jpg)){StartCoroutine(ReadTexture(split[1], LoadImg));}else if (split[0].Contains(txt)){StartCoroutine(ReadData(split[1], LoadText));}else{Debug.Log(文件格式错误);return;}}/// summary/// 读取图片/// /summary/// param namepath/param/// param nameaction/param/// returns/returnsIEnumerator ReadTexture(string path,UnityActionTexture action){Debug.Log(path);UnityWebRequest request UnityWebRequestTexture.GetTexture(path);yield return request.SendWebRequest();if (request.isNetworkError || request.isHttpError){Debug.Log(request.error);}else{byte[] imgdata request.downloadHandler.data;action(DownloadHandlerTexture.GetContent(request));}}/// summary/// 加载图片/// /summary/// param nametexture/paramvoid LoadImg(Texture texture){Sprite ImgSprite Sprite.Create((Texture2D)texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f));showImg.sprite ImgSprite;}/// summary/// 读取文本/// /summary/// param namepath/param/// param nameaction/param/// returns/returnsIEnumerator ReadData(string path, UnityActionstring action){Debug.Log(path);UnityWebRequest request UnityWebRequest.Get(path);yield return request.SendWebRequest();if (request.isNetworkError || request.isHttpError){Debug.Log(request.error);}else{Debug.Log(request.downloadHandler.text);action(request.downloadHandler.text);}}/// summary/// 加载文本/// /summary/// param nametext/paramvoid LoadText(string text){showText.text text;} }注意 clickSelectFileBtn函数用来调用Js函数GetBase64函数用来接收数据。 2-3、打包WEBGL后修改 注意我用的Unity2019.4.9f1版本。高版本打包出来的index.html以及Build里面的文件跟我的不一致这个后面有空再说如何匹配高版本吧先用2019版本演示。 打包之后 修改index.html文件 !DOCTYPE html html langen-usheadmeta charsetutf-8meta http-equivContent-Type contenttext/html; charsetutf-8titleUnity WebGL Player | Demo_WEBGLLoadFile/titlelink relshortcut icon hrefTemplateData/favicon.icolink relstylesheet hrefTemplateData/style.cssscript srcTemplateData/UnityProgress.js/scriptscript srcBuild/UnityLoader.js/scriptscriptvar unityInstance UnityLoader.instantiate(unityContainer, Build/WEBGL_LoadFile.json, {onProgress: UnityProgress});function clickSelectFileBtn() {var tempFileLayout document.getElementById(files);tempFileLayout.click();}function fileImport() {//获取读取我文件的File对象var selectedFile document.getElementById(files).files[0];if (selectedFile ! null) {var reader new FileReader();reader.readAsDataURL(selectedFile);reader.onload function (e) {var base64Str e.currentTarget.result.substring(e.currentTarget.result.indexOf(,) 1);sendMessageToUnity(base64Str);}}}function sendMessageToUnity(s) {//发送给unityvar filedocument.getElementById(files).files[0];SetFileUrlByDragEnd(file);}function SelectFile(){var filedocument.getElementById(files).files[0];SetFileUrlByDragEnd(file);}function SetFileUrlByDragEnd(file) {unityInstance.SendMessage(Scripts, GetBase64, file.name|URL.createObjectURL(file));}/script/headbodyinput typefile idfiles styledisplay:none onchangefileImport()div classwebgl-contentdiv idunityContainer stylewidth: 960px; height: 600px/divdiv classfooterdiv classwebgl-logo/divdiv classfullscreen onclickunityInstance.SetFullscreen(1)/divdiv classtitleDemo_WEBGLLoadFile/div/div/div/body /html代码解释一下 1首先是加了一个input typefile idfiles styledisplay:none onchangefileImport()用来响应打开文件的操作。 2然后用Unity程序的Button响应clickSelectFileBtn函数去触发这个组件。 3添加fileImport去处理打开的文件得到文件流。 4获得文件名和文件路径通过unityInstance.SendMessage(Scripts, GetBase64, file.name|URL.createObjectURL(file));传给Unity。 5URL.createObjectURL(file)可以获得本地文件的缓存url直接发给Unity然后Unity用来加载。 2-4、效果演示 三、后记 如果觉得本篇文章有用别忘了点个关注关注不迷路持续分享更多Unity干货文章。 你的点赞就是对博主的支持有问题记得留言 博主主页有联系方式。 博主还有跟多宝藏文章等待你的发掘哦 专栏方向简介Unity3D开发小游戏小游戏开发教程分享一些使用Unity3D引擎开发的小游戏分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感总结从零开始学习Unity的路线有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI系统UGUI全解析从UGUI的基础控件开始讲起然后将UGUI的原理UGUI的使用全面教学。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR虚拟仿真开发虚拟仿真总结博主工作常见的虚拟仿真需求进行案例讲解。Unity3D之插件插件主要分享在Unity开发中用到的一些插件使用方法插件介绍等Unity3D之日常开发日常记录主要是博主日常开发中用到的用到的方法技巧开发思路代码分享等Unity3D之日常BUG日常记录记录在使用Unity3D编辑器开发项目过程中遇到的BUG和坑让后来人可以有些参考。
http://www.ho-use.cn/article/10823293.html

相关文章:

  • 产品网站 模板江苏网站建设seo优化
  • 建设银行网站上改手机号码手机百度建设网站
  • ftp怎么上传网站建设法规的网站
  • 新闻源网站做黑帽seowordpress google fonts 360
  • 网站开发培训机构需要多少钱同ip网站做友链
  • 哪个网站做任务能赚钱html网页设计模板下载
  • 企业网站推广技巧有哪些dede 网站打开自动加html
  • 深圳招聘网站有哪些永康住房和城乡建设局网站
  • 蚌埠网站建设文章58同城网站建设问题
  • 深圳工程建设网站网站推广软件免费版下载
  • 徐州微网站开发公司wordpress搬家方法
  • 小广告清理seo短视频网页
  • 网站开发时图片加载慢怎么解决网站建设和维护的教程
  • 茂名平安建设网站九江市建筑公司
  • 淘宝的网站架构近一周的新闻大事热点
  • 网站扩展性建立主题网站的知识点
  • 做网站公司的收费多少已备案域名购买网址低价
  • 外贸建设企业网站服务宁波做外贸网站建设
  • 爱站网关键词挖掘工具怎样在网上推广自己的产品
  • 大型租车门户网站商业版源码软件商店安装app
  • 烟台网站搭建app软件推广怎么做
  • 美食网站黑米如何做有个域名怎样做网站
  • 优秀网站设计的标准重庆做网络推广的公司
  • 如何快速做企业网站包括商城会员制营销方案
  • 学校网站建设运行简介珠海网站建设维护
  • 建网站 开发app侯马网站建设
  • 怎么做律所的官方网站如何用微信公众号做企业网站
  • 免费的中文logo网站wordpress视频主题
  • 深圳网站建设行业新闻云凡济南网站建设开发
  • 大学生做家教比较好的网站网站关键词抓取