写点什么

Unity 实战问题 -WebGL 问题集锦 - 上篇

作者:芝麻粒儿
  • 2022 年 7 月 18 日
  • 本文字数:1522 字

    阅读完需:约 5 分钟

Unity实战问题-WebGL问题集锦-上篇

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!专注于 Android/Unity 和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)


👉即将学会

了解到 Unity 发布 WebGL,可能遇到的问题以及解决方法。

👉背景

今天小芝🙎和小空🙈今天一起吃了饺子(饺子馅却是 3 周前冷冻的),太穷了!

👉实践过程

额... 前两天刚完事一个 Android 项目,突然收到消息要上一个 unity 的玩意,浏览器的 webgl WTF??

没接触过好吗;立项设计的时候赶紧恶补了下 unity,开发过程中可劲儿的查资料;总算是按计划完成了;记录下遇到的问题,如果你是 Unity 大神,请选择性忽略。



开发环境:Unity 2018.x (64bit)--激活版 

浏览器:Google Chrome 版本:70.0.3538.67 Firefox 版本 63.0.1.6877 

在这提一句 发布成 WebGl 后 有个 html,火狐可以直接打开 html 运行,但是谷歌不能; 不过你可以编译的时候 使用 file 下的 build&run 当然谷歌是默认浏览器,这样谷歌就直接打开了; 

问题一

导入一张图片,转换为精灵(sprite)的时候出现 P(可学):为啥转 sprite?精灵体系是啥?精灵原理是什么?



大致翻译看是: OnlyPOT texture can be compressed if mip-maps are enable (如果启用了 mip-maps,则只有 POT 纹理可以被压缩) POT :power of two(2 的幂次方)

Onlytextuers with width/height being multiple of 4 can be compressed to DXT(只有宽度/高度为 4 的倍数的纹理可以压缩到 DXT)

原因:图片必须要采用 2 的幂次方大小才能使用该格式。很多时候也会因为 Mip Maps 占用多余的内容所以不选择它。把 GenerateMip Mpas 勾掉就可以了



问题二

极简单的问题,在 build 的时候 一定要把所有的场景添加进去; File--build setting



问题三

unity 导入视频,出现 movie importing requires quick time to be installed 

这个问题比较多,详情请看:https://blog.csdn.net/qq_27489007/article/details/83654098 

问题四

发布 WebGL,字体默认是不显示中文的; 所以 需要修改字体样式 ttf 字体打包下载地址: https://download.csdn.net/download/qq_27489007/10760317 

问题五

当创建 UI 的时候 默认有个 Canvas 父类,默认是不可修改大小的;如图 



解决 就是把 Canvas 的 Render Mode 改为 World Space (世界空间坐标系即可);



问题六

获取物体的子物体,全部物体等

获取一级子节点


foreach (Transform child in this.transform)         {                   Debug.Log(child.name);           }
复制代码



获得的是 bg Main Loading

获取所有子节点


foreach (Transform child in gameObject.GetComponentsInChildren<Transform>())  {       Debug.Log(child.name);     }  
复制代码


 //这样会包括所有带有 transform 属性的子节点

例上图获得的是所有的控件;

问题七

Unity 关联了 VS(如图) 但是打开的时候,竟然还是 Unity 默认的 Mono



解决方法:设置 Unity 和 VS 默认以管理员身份运行; 但是好像这样会使你不能在以直接拖拽的形式把外部资源直接放进 unity,不影响大局

问题八

有时候咱们实现物体的隐藏显示的时候,可能是使用修改物体的坐标来实现物体消失的假象,这时候要注意坐标系的问题带来的判断错误 

child.transform.position.z 是世界坐标系 

child.transform.localPosition.z 是以父节点为中心的 坐标系 


👉其他

📢作者:小空和小芝中的小空

📢转载说明-务必注明来源:https://www.infoq.cn/profile/DB2492B85795C4/publish

📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

发布于: 刚刚阅读数: 3
用户头像

芝麻粒儿

关注

尺有所短;寸有所长。 2020.08.29 加入

👑CSDN博客专家-华为云享专家-Android/Unity领域优质作者 🏅目前在模拟医学行业做Android/Unity双端开发 🏆微信公众号:【空名先生】 🏆QQ交流群:204918251或877807592

评论

发布
暂无评论
Unity实战问题-WebGL问题集锦-上篇_Unity_芝麻粒儿_InfoQ写作社区