如何避开unityunity3d地图编辑器器的那些坑

(window.slotbydup=window.slotbydup || []).push({
id: '2014386',
container: s,
size: '234,60',
display: 'inlay-fix'
&&|&&0次下载&&|&&总3页&&|
您的计算机尚未***Flash,点击***&
阅读已结束,如需下载到电脑,请使用积分()
下载:2积分
0人评价2页
0人评价5页
0人评价22页
0人评价11页
0人评价1页
所需积分:(友情提示:大部分文档均可免费预览!下载之前请务必先预览阅读,以免误下载造成积分浪费!)
(多个标签用逗号分隔)
文不对题,内容与标题介绍不符
广告内容或内容过于简单
文档乱码或无法正常显示
若此文档涉嫌侵害了您的权利,请参照说明。
评价文档:
下载:2积分Unity中遇到的那些坑 - 简书
Unity中遇到的那些坑
本文主要记录在使用Unity做项目时候遇到一些莫名其妙的坑
以及适当的解决方案或是避开的方案
---------------------不定期更新---------------------
1、OnTriggerEnter函数,在同一个点摆两个相同的Collider。用同一个脚本接受消息后,使用协程实例化GameObject时可能会有一个接收不到。(版本:4.6)
2、不要在Awake函数中做函数操作,在引用时可能会有莫名其妙的问题。最好是Awake函数里做对象的实例化,Start函数里开始做第一次的函数调用。具体可以参考博客:.(版本:4.6)
3、Material深拷贝的问题,Material a = b会深拷贝,注意释放的问题,如果只是修改material属性,应该使用shareMaterial。(版本:4.6)
4、粒子系统:Mesh类渲染Bug;如果粒子系统是Mesh类型,在发射点处于镜头之外时,整个粒子都会不渲染;解决方法是增大粒子的Scale,Scale不会影响粒子的渲染效果,但是会增加渲染范围。(版本:4.6)
5、粒子系统:粒子系统Mesh类型在摄像机范围之外时会停止播放并且不消失,当镜头转过来时还会发现粒子仍然保持之前离开镜头时的姿势停在原地;解决方法,增加一个可见性判断的脚本,如果不可见则进行一般处理。(版本:4.6)
6、不能用中文。
7、WWW在iOS上加载http的时候必须用yield等待;WWW里的URL在PC上可以用While(r.isDone)等待http连接,但是在iOS平台上会陷入死循环,需要创建协程去等。
8、Prefab实例化;Prefab上如果有Unity的NavMeshAgent组件需要被实例化在一个NavMesh上的合理的点,否在会报错。
9、Prefab实例化;Prefab上有飘带组件,在首次出生的时候不能瞬间切换坐标,否则飘带会消失。
10、IL2PP:SocketErrorCode平台差异;SocketException在Windows平台是10035,但是在iOS上报10036;解决方案是把这两个都设为Connecting。(版本:4.6.3f1)
11、UGUI的Mask在iPad2,iPad mini上失效,在iPad air2上没事;解决方案,需要在导出选项上选择Use 24-bit Depth Buffer。
12、Animator.Rebind()。会重建骨骼信息,会使Root节点出现旋转和位置的偏移;解决方案Animator.play(name,layer,ttime)。ttime设为0;
13、Destroy操作很保守。例如,销毁mesh时,并不会销毁material、texture,更不会清理脚本资源。解决方案,合理做法是依赖很卡的UnloadUnusedAssets、LoadScene清理无引用资源(另注意前者是异步的),或者Bundle.Unload(true),这些方案各有限制。
14、int a = 10;int b = 8; float c = a/b; c的结果会一直显示为0,因为int类型无法自己强制转化为float类型。
15、项目中模型和动画是分开的,后面美术同学把部分动画重新调整,重新导入的时候会发现部分动画动不了了,后来经查是美术在动画调整的过程中把骨骼的名字改了,导致和之前模型对应不上。解决方式,让美术把命名统一一下,重新导入。 版本:4.6.9
专注游戏AI和图形学研究

参考资料

 

随机推荐