一直用unity3d在做ios、安卓和windows这些平台的开发,最近有需求要发布到网页上,才发现这有一个大坑
打包WebGL平台老是出错,错误输出:
Failed running "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten_Win/python/2.7.5.3_64bit/python.exe" "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten/emcc" @"D:/Myprogram/test/Foxiang/Assets/../Temp/emcc_arguments.resp"
stdout:
stderr:
Traceback (most recent call last):
File "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten/emcc", line 1197, in <module>
shared.Building.link(linker_inputs, in_temp(target_basename + '.bc'), force_archive_contents=force_archive_contents)
File "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport\BuildTools\Emscripten\tools\shared.py", line 1397, in link
assert os.path.exists(target) and (output is None or 'Could not open input file' not in output), 'Linking error: ' + output
AssertionError: Linking error:
UnityEditor.HostView:OnGUI()
查了好多资料,看了好多国外的帖子,虽然都是一知半解的,但是最后也找到了解决方案:
那就是打包输出的文件路径要和项目工程放在同一级别的文件目录下,就可以成功打包了。unity的坑啊
自己总结的经验,希望对碰到相同问题的小伙伴们有帮助。
越挫越勇,然后会有更多的坑等着大家去填。。。。
一直用unity3d在做ios、安卓和windows这些平台的开发,最近有需求要发布到网页上,才发现这有一个大坑打包WebGL平台老是出错,错误输出:Failed running "D:\Program Files\unity5.4.1\Editor\Data\PlaybackEngines\WebGLSupport/BuildTools/Emscripten_Win/python/2.7
一般出现了错误 可以看看在浏览器里面传的变量和在编辑器里面的有什么不一样
如果有不一样 就可以试着将浏览器的变量放入到编辑器里面试试
RuntimeError: index out of bounds
这种错误出现,可能是在编辑器里面是 Object reference not set to an instance of an object
即访问某个空引用。
国内所有网站居然搜不到这个
问题
是我最奇怪的;
ios
15.4更新之后
Unity
打包
WebGL
无法运行,卡在加载读条最后一点点,也不会报错;
原因是apple更新15.4之后
WebGL
有大bug;
Unity
官方给了一个修改编译文件的方法,有解决这个
问题
的可能性;
但是还是有大部分开发者在图形显示上遇到了更多的坑;
apple官方说他们已经修复了这个bug至于什么更新发版未知;
毕竟不在商店上架又抽不到成;
以下解决方案互相独立,有可能解决但不一定;
解决办法:
1.将
webgl
2.0改为
webgl
1.0(意
然后这个是新项目,考虑用
Unity
2019.2.1f打包看看。
和之前一样,逐个打包插件的Demo,都可以,然后加上整个项目,不行。然后一点一点的减少文件,还是不行,最后发现空的项目也不行。新建了一个全新的项目也不行。
Failed ...
Unity
Webgl
问题
总结
最近公司要求将CS项目更改成BS项目,我听后人都傻了,对这块不是很熟悉,之前没有做过完整的项目,只知道
unity
webgl
有很多坑,然后只能去网上找找资料,发现
unity
的
webgl
平台对开发者实在是太不友好了,时不时出现一些
问题
,而这些
问题
还不怎么好解决,在网上搜索发现解决和提问的
问题
少之又少,还好项目时间充足,才得以完成,最近不怎么忙,闲来把总结写了。
1.
webgl
不显示字体
开始导出来发现一些字不显示,还以为分辨率压缩Text文本导致字不显示,后来发现原来是web
一:什么是协同程序?
在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,
Unity
的协程实在每帧结束之后去检测yield的条件是否满足。
二:
Unity3d
中的碰撞器和触发器的区别?
碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCol
Unity3D
是一款功能强大的游戏引擎,可以用来开发各种类型的游戏和应用程序。其中,导出
WebGL
格式是
Unity3D
的一个重要功能,它使得我们可以将游戏或应用程序直接
发布
到Web上,让用户可以通过浏览器来访问和体验。
使用
Unity3D
导出
WebGL
格式非常简单。首先,我们
需要
确保在
Unity
中我们的项目已经设置好了所需的场景、模型、材质和脚本等。然后,我们可以选择菜单栏中的"Build Settings"选项,打开一个设置窗口。
在"Build Settings"窗口中,我们
需要
选择"
WebGL
"作为目标平台,并设置一些导出选项。例如,我们可以选择导出的文件名和保存的路径。我们还可以选择是否
需要
压缩文件,以及是否
需要
在导出过程中进行连接和优化操作。
当我们设置好导出选项后,只需点击"Build"按钮,
Unity3D
将开始导出我们的项目为
WebGL
格式。这个过程可能
需要
一些时间,具体取决于我们的项目大小和计算机性能。
完成导出后,
Unity
将生成一个文件夹,其中包含所有导出的
WebGL
文件。我们可以将这个文件夹上传到Web服务器上,然后用户可以通过使用任何兼容的浏览器访问我们的游戏或应用程序。
使用
Unity3D
导出
WebGL
格式,我们可以将我们的项目变成一个跨平台的应用程序,用户可以通过使用不同设备上的Web浏览器来访问和播放。这种格式的导出不仅便于使用,而且还可以保留游戏或应用程序的许多功能和性能,使其在Web上的运行效果更加流畅和逼真。
CSDN-Ada助手:
Vuforia 云辨认 多图教程
xianshuijin:
NPC的随机运动
进击的CV侠:
NPC的随机运动
Zeitlos: