利用Unity打包Web端项目的题目还是挺多的,以是记录一下。
有关WebGL项目的打包与部署,这里就不介绍了
(会持续更新项目部署时遇到的实际题目,接待关注~~~)
一:IIS部署后网页打不开,网页显示404
点击F12,打开网页控制台,所遇到的题目大概像一下图片一样:
题目剖析:网站MIME类型不支持剖析.data类型文件,这个.data文件就是你Web项目打包后Build包里存在的几个文件。
解决方法:打开IIS管理器,手动添加MIME类型。
MIME类型:application/octet-stream
同理,遇到.wasm文件无法剖析时,同样添加MIME文件类型即可。
添加后,体系会在idenx.html同目次下生成一个Web.config文件,可复制到其他Web项目中,省去手动添加的步骤~
二:StreamingAssets文件夹内的文件无法读取
通常,方便项目的灵活性,我们经常在StreamingAssets文件夹下添加可配置文件,在部署到项目地点的时候,根据实际情况举行修改。如IP地址等。
通常利用:
- string filePath = Path.Combine(Application.streamingAssetsPath, "IP.json");
- if (File.Exists(filePath))
- {
-
- string jsonContent = File.ReadAllText(filePath);
- Debug.Log("File content: " + jsonContent);
- }
- else
- {
- Debug.LogError("File not found: " + filePath);
- }
复制代码 而在Web打包时,StreamingAssets中的文件是无法通过相对路径的方式举行读取。必须利用UnityWebRequest方式,此方法同样适用于Android平台
详细代码示例:
- void Start()
- {
-
- string filePath = Path.Combine(Application.streamingAssetsPath, "IP.json");
- StartCoroutine(ReadFileUsingUnityWebRequest(filePath));
- }
- IEnumerator ReadFileUsingUnityWebRequest(string filePath)
- {
- UnityWebRequest request = UnityWebRequest.Get(filePath);
- yield return request.SendWebRequest();
- if (request.result == UnityWebRequest.Result.Success)
- {
- Debug.Log("File content: " + request.downloadHandler.text);
- }
- else
- {
- Debug.LogError("Failed to read file: " + request.error);
- }
- }
复制代码 二:如安在WebGL端与前端举行通讯
在官方手册中,打包WebGL端后是可以与前端网页举行交互的,方便前端与三维内容举行通讯。或者有些项目,甲方需求Web端部署,同时还要满足二次开辟的需要。
详细链接为:WebGL:与浏览器脚本交互 - Unity 手册
简单来说
Java调用Web只需要:
- unityInstance.SendMessage(objectName, methodName, value);
复制代码 其中,__objectName__ 是场景中的对象名称;__methodName__ 是当前附加到该对象的脚本中的方法名称;__value__ 可以是字符串、数字,也可为空。
需要注意的是:Value只支持一个参数,不支持多个参数。
以是在项目中遇到传递多个参数的情况,常常利用标识符 来举行隔离,如:
在Unity脚本中,再根据标识符来举行多参数的处置惩罚。
Unity 脚本调用 JavaScript 函数:
借助 .jslib 扩展名将包罗 JavaScript 代码的文件放置在 Assets 文件夹中的“Plugins”子文件夹下
再在脚本中利用DllImport举行方法导入。(操纵有点复杂,在背面会详细再写一篇专门来介绍,同时介绍调用方面的难点。)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |