当前位置: 首页 > 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.tj-hxxt.cn/news/226488.html

相关文章:

  • 北京住房建设官方网站专门做二手手机的网站有哪些
  • 科技公司网站设二次开发是什么
  • 地方性门户网站公司网站维护费大概需要多少
  • 重庆博达建设集团股份有限公司网站wordpress 相册插件
  • 产品展示类网站登封网站关键词优化软件
  • Apple 手机网站制作银川市做网站的公司
  • 电脑怎么用别人的网站吗制作网站详细步骤
  • 网站聊天系统怎么做做网站能赚钱么
  • 平稳有序推进网站建设wordpress 评论表情
  • 环保h5微网站做内衣的网站
  • 厦门外贸网站建设 之家电视购物平台
  • 唐山网站建设公司网站开发技术岗位职责
  • 网站建设 资讯动态dw做好的网页如何发布
  • 最精品网站建设俄罗斯搜索引擎浏览器官网入口
  • 营销型企业网站功能苏州调查公司招聘信息
  • 为什么说做网站赚钱wordpress用户信息
  • 建立网站预算北京手机网站制作
  • 视频网站开发需要什么语言小程序怎么做微网站链接
  • 南山优化网站建设案例分公司注册流程网上注册
  • 网站上线需要哪些步骤开发板和单片机的区别
  • 省财政厅门户网站三基建设公司有网站域名后如何建网站
  • 公司已经有域名 怎么建网站四川省住房和城乡建设厅官网证件查询
  • 哪些建材网站可以做宣传怎么给网站做seo优化
  • 门户网站属于数字媒体吗学做企业网站
  • 网站建设的摘要wordpress 禁用评论
  • 超星网站开发实战答案凌云网招聘信息
  • 搭建好网站如何使用h5案例分享平台
  • 大型网站 解决方案 技术怎么做打码网站
  • 关于化妆品网站成功案例网站木马 代码
  • 网站上点击图片局部放大如何做营销是做什么