unity bug reporter3d的一个bug

1999人阅读
unity3d (手机网游开发问题总结)(40)
1 & Unity 531f &中 特效文件中提示 &
Invalid AABB a
IsFinite(outDistanceForSort)
IsFinite(outDistanceAlongView)
如果你的特效文件的rotate 不是0,0,0 会出现这个问题,但是可能有些特效本来就是需要旋转的,所以无法改变,查证过后发现是unity
解决办法:更新到Unity532 即可~
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:316497次
积分:3807
积分:3807
排名:第8935名
原创:196篇
评论:61条
(1)(2)(1)(6)(5)(2)(3)(1)(6)(8)(5)(4)(2)(3)(1)(5)(1)(1)(3)(1)(3)(10)(11)(9)(3)(16)(30)(10)(1)(6)(2)(1)(2)(38)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之静态自动检查代码缺陷与隐患
Unity3D研究院之静态自动检查代码缺陷与隐患
围观7294次
编辑日期: 字体:
代码缺陷和代码错误的最大区别是,代码缺陷不影响游戏编译,而代码错误编译都不通过。但是代码缺陷会影响游戏发布后产生的一系列BUG。。我今天无意间逛外国论坛发现的一个方法,使用了一下感觉挺给力的第一时间分享给大家。 下载下来以后,它是一个文件夹把整个文件夹拷贝在你Unity的工程里面就行了。
Unity 3D Gendarme Plugin:
然后下载最新的mono 它是跨平台的,我用的是MAC所以我下载的就是一个 dmg文件, 下载完毕后安装完成即可。
如下图所示, 选择Assets-&Gendarme Report Level 选项,将弹出Gendarme界面,你可以选择它的优先级,然后点击Start按钮。如果报错的话,请把Assets文件夹下的gendarme文件夹和gendarme-report.html文件删除。
如果你的项目比较大的话需要耐心的等待一下,大概1分钟左右。Report生成完毕后会弹出如下窗口,点击Open Report按钮即可。
如下图所示,他会生成一个Html的页面在本地,打开后写的非常清晰,并且已经分好了类,他会告诉你那一行代码有缺陷,如何来修改你的代码。一不小心代码就一大堆隐患,赶快一个一个修改吧。嘿嘿。。
最后期待您的回复与讨论。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!Unity中的图形Bug定位及调试技巧 - 游戏开发,移动开发技术干货分享 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho66731人阅读
游戏开发及技术(65)
最近开始研究unity,准备将之前自己业余时间做的一款游戏(金庸群侠传X)发行移动端版本(我不是游戏公司从业人员,业余时间自己做着玩,大神轻喷)。由于之前使用silverlight(C#)做的,所以移植unity有天然的语言优势。
看了一下unity的更新公告,4.6出的UGUI我比较喜欢,因为之前也用过NGUI,总感觉不是很顺畅。那么,即使有坑,我们也来趟趟吧。
到现在陆陆续续大概已经趟了一个月的坑了,总的感觉是,对于unity还是比较满意的:非常简单容易上手,功能还算齐全——现在DEMO版本已经能够在android、ios上较好的运行。上两张截图吧
现在总结一下我在开发中碰到的几个“坑”——当然,话说在前头,因为我也是刚开始学习unity,目前我自己认为的坑也可能是我自己的理解不够,如果大家有更好的解决方法,欢迎指正!楼主写这篇博客的时候是日,使用的是当前最新的unity 4.6f1版本。
1、scroll rect的各种问题
(日:这个是我自己搞错了,unity有提供方法,只是我之前用错了,请移步,这一条下面写的大家就当看个笑话吧 :D)
很多界面需要用到滚屏,unity提供scroll rect控件。具体的组织方式为:
每个ScrollRect对应一个scrollcontent,ScrollContent定义内容的排版组织方式,如Grid Layout Group或者Vertical Layout Group。(这里比较像silverlight中的StackPanel和GridPanel)
我使用以后发现一个最大的问题是,scroll content无法根据其包含的内容自动伸缩。也就是说,scroll content的宽和高需要手动指定,如果其中内容超出了它的范围,那么超出的内容将无法滚屏过去。
这一点实在是把我恶心到爆了,于是出现了诸如以下的代码
if (Mode == SelectMenuMode.Vertical)
selectContent.GetComponent&VerticalLayoutGroup&().enabled =
selectContent.GetComponent&GridLayoutGroup&().enabled =
float spacing = selectContent.GetComponent&VerticalLayoutGroup&().
//unity每次需要手动设置scroll content的大小
float height =
foreach (Transform s in selectContent)
height += s.GetComponent&RectTransform&().rect.height -
float width = selectContent.GetComponent&RectTransform&().rect.
selectContent.GetComponent&RectTransform&().sizeDelta = new Vector2(width, height);
else if (Mode == SelectMenuMode.Grid)
selectContent.GetComponent&VerticalLayoutGroup&().enabled =
selectContent.GetComponent&GridLayoutGroup&().enabled =
float cellX = selectContent.GetComponent&GridLayoutGroup&().cellSize.x;
float cellY = selectContent.GetComponent&GridLayoutGroup&().cellSize.y;
float spacingX = selectContent.GetComponent&GridLayoutGroup&().spacing.x;
float spacingY = selectContent.GetComponent&GridLayoutGroup&().spacing.y;
float width = selectContent.GetComponent&RectTransform&().rect.
float height = Mathf.CeilToInt(selectContent.childCount / (width / (cellX + spacingX))) * (cellY + spacingY);
selectContent.GetComponent&RectTransform&().sizeDelta = new Vector2(width, height);
每次需要手动去设置scroll Content的RectTranform的sizeDelta属性。这样代码很丑陋且极其不灵活。如果对于内容的宽高和排列可以预期,那还好。假如内容是一个文本,那岂不是还要算字体所占宽高、行间距等等……&
其次的一个问题是:scroll content的position设置貌似是有BUG。
为了实现大地图滑动滚屏的效果,我将大地图放到一个scroll content中,然后可以由玩家手指滑动来进行拖拽,这个unity实现都没有问题。问题是,我需要由代码实现“滚屏”到某个点,则问题来了——
我手动在unity editor的运行时态设置的scoll content的x,y都是OK的,放到代码里去设置transform.localPosition,就完全错位了。
最后经过反复尝试,代码写成了这样……
&span style=&white-space:pre&& &/span&//大地图卷屏
if(location.name.Equals(RuntimeData.Instance.GetLocation(RuntimeData.Instance.CurrentBigMap)))
float x = -location.X + 640; //减去半个屏幕宽度,居中
float y = -location.Y - 320; //减去半个屏幕高度,居中
if (x & -1140) x = -1140; //边界限制
if (y & 640) y = 640;
if (x & 0) x = 0;
if (y & 0) y = 0;
//by cg: 这里对齐的逻辑有点奇怪,应该是unity的BUG,没处理好对齐锚点。先手动修正。
BigMap.transform.localPosition = new Vector3(-570f + x, 320f + y, 0);
原因应该是我将scroll content的Anchor Pivot设置成了(0,1),但unity设置localPosition却没有写参考这个锚点的逻辑,需要手动修正。
还有比较大的一个问题,ScrollRect所在的GameObject的Image组件,alpha设置有个BUG
按道理来说,这个Image只是scrollRect的一个背景,不影响其内容。但在把alpha设置到特别小的时候,不管是在editor上还是在运行环境中,scroll content都将显示不出来。我试了大概是设到4-8以下就会完蛋。。所以我们需要获得一个背景透明的scroll content,还不能把背景设置得太过于透明了……
2、LINQ不能在IOS上使用
在PC、EDITOR、MAC、ANDROID都没有问题的代码,放到IOS真机(IPHONE、IPAD)上出问题。原因搜了一下大概意思应该是苹果不允许出现动态代码。
这个是unity一直的问题了,貌似有办法通过第三方的LINQ实现来保证。总之我是放弃使用LINQ了。
3、unity新版动画系统Mecanim使用中碰到的问题
我的游戏中人物分几种动画,如 站立、移动、攻击。我使用Mecanim的状态机来实现,动画之间使用SetTrigger来实现切换。
我发现一个动画在切换后如果没有播放完毕,再调用SetTrigger的话,有时就会出现动画状态错乱。我的状态机是这样的:
所以我代码里现在是每次需要等待一段时间后,再进行切换。。
4、sprite editor中的BUG
在sprite editor中通过鼠标调整锚点为custom,第一次保存(这时候unity已经自动将类型切换为custom了)会失败!需要保存两次——但是第二次必须又和第一次不是同一个锚点,否则保存按钮点不下去!
或者先手动将锚点类型改为custom,然后再保存才可以。
好了,吐槽了这么多问题,总之unity新版本我还是很支持的。毕竟原生态的GUI系统还是比NGUI等硬往上“套”的UI系统要好很多。对于unity3d使用C#编程语言也是更加好顶赞。我不是一个喜欢讨论哪个编程语言好的人,就我来说,我至少使用过10多种语言编写过代码,目前来说感觉比较酸爽的还是C#。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:785387次
积分:9917
积分:9917
排名:第1877名
原创:245篇
评论:373条
(1)(1)(1)(1)(1)(3)(1)(2)(2)(2)(3)(2)(2)(3)(2)(1)(2)(2)(1)(2)(4)(5)(2)(1)(1)(1)(1)(3)(1)(1)(1)(1)(1)(3)(1)(1)(2)(2)(2)(3)(3)(3)(3)(4)(1)(8)(8)(5)(5)(9)(8)(5)(6)(5)(10)(7)(17)(25)(16)(11)(8)(2)(7)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'模型显示不正确;一、部分或全部面片透明如图;此类问题非常常见具体出现原因也有很多常见的如法线;法线、顶点、透贴的问题比较常见处理办法也比较常规;辅助线;如图所示unity中将四边面自动转换成三边面时会;形贴图出错;解决方案;(1)在Max显示面板下取消EdgesOnly显;(2)检查辅助线方向找到出错处用Cut工具划出实;模型属性;在模型的制作、绑定、调动画
模型显示不正确 一、 部分或全部面片透明 如图
此类问题非常常见 具体出现原因也有很多 常见的如法线异常、顶点没有合并、透明贴图错误、辅助线方向错误、模型属性错误等。 法线、顶点、透贴的问题比较常见处理办法也比较常规 不再解释。这里说下辅助线和模型属性问题。
如图所示 unity中将四边面自动转换成三边面时会出现方向错误的情况 有时会导致UV变形贴图出错
解决方案 (1)在Max显示面板下 取消Edges Only显示辅助线
(2)检查辅助线方向 找到出错处 用Cut工具划出实线纠正错误
模型属性 在模型的制作、绑定、调动画过程中可能会出现一些误操作改变模型属性,导致其在unity中显示异常。常见的如启用骨骼属性、可见性小于1以及在导入导出过程中模型属性出现未知错误。
解决方案: (1) 启用骨骼属性 常见于绑定及调动画过程中误改了模型。只需在动画下拉菜单下打开骨骼工具面板,找到对象属性关掉启用骨骼的勾选即可。如图
(2) 可见性小于1
在右键对象属性面板下,修改过可见性参数,会导致模型透明,将其参数调回到1即可。如图
(3) 模型属性的未知错误 常见于反复导入导出操作后,模型有可能出现各种意外,解决办法也比较简单。在max中导出obj格式的模型即可,因为obj只记录模型的网格信息不回带其他。
其他 (1) 在unity中偶尔出现mesh丢失的情况也会导致模型不显示,只要找到对应mesh放回skinned mesh renderer下的mesh选项即可。 (2) 同一模型的两个面片间距离过近,可能会导致unity无法识别哪一个在前哪一个在后导致模型透明。 (3) 多个模型所在渲染层不同、材质分配的不同,也会导致图像上的前后关系错乱,产生模型透明的错觉,要配合程序修改层级别或材质。
渲染层级 材质
二、 模型缩放异常 常见的缩放错误包括模型整体缩放异常、四肢缩放动画异常、缩放隐藏异常等。 1. 模型整体缩放异常 有时在max中看起来尺寸正常的模型,导入到unity中会过大或过小,导致此类问题的原因通常有三种。 (1) unity参数异常 在fbx文件inspector面板model分类下的scale factor参数异常,
通常出现这种问题是因为max中的单位与unity中的单位不统一,在单位转化的过程中出现异常,解决方案也很简单参照其他显示正常的模型,scale factor的参数是多少,修正异常模型的参数即可。 (2) max中模型有缩放 在max里查看模型缩放参数不为100,通常是由于模型在完成后没有进行重置变换(reset xform)。解决方案 只要将模型缩放到合适大小,添加重置变换命令并塌陷即可。如图
(3) 模型的父级有缩放 通常出现在非角色的模型上,模型作为子级被链接到其他物体(如虚拟体、bone骨骼或其他模型等)时,其父级发生过缩放。解决方案 检查整个链接关系的缩放。
2. 四肢缩放动画异常 骨骼缩放动画,尤其是bip骨骼缩放动画,在max和unity中的计算方式不同,max中父级的缩放不会影响子级,但导入到unity中就会影响。所以一些在max里看起来正常的缩放动画,在unity中会拉扯的非常夸张。目前尚无有效的解决方案,只能是尽量缩放末端骨骼(小臂、小腿)而不去缩放首端(大臂、大腿、躯干) 另 如果确实需要做橡胶人一类的全身都需要拉伸的角色动画,可以考虑用位移拉伸代替缩放拉伸,实现方案有几种,但都十分复杂,暂不在此介绍。 Bip骨骼缩放动画的实现方法见我整理的其它文档。
3. 缩放隐藏异常 是指用缩放手法来控制模型的出现和消失时,由于max和unity的帧率不同(max一般默认每秒30帧、unity默认每秒60帧),会出现一个介于出现和消失之间的错误中间帧,如图
三亿文库包含各类专业文献、幼儿教育、小学教育、专业论文、生活休闲娱乐、文学作品欣赏、外语学习资料、高等教育、各类资格考试、行业资料、关于Unity3D中模型异常的可能性及解决办法46等内容。 
 三.材质贴图规范 ⒈我们目前使用的 Unity3D 软件作为仿真开发平台,该软件对模型的材质有一些特 殊的要求,在我们使用的 3dsMax 中不是所有材质都被 Unity3D 软件...  Unity3D常见问题_IT/计算机_专业资料。Unity3D 常见问题欢迎来到 unity 学习、 ...答:Unity 中可设置双面 Shader,最简单有效的办法是直接做成双面的实体模型. 15...  关于Unity3D中模型异常的可能性及解决办法_法律资料_人文社科_专业资料。关于Unity3D中模型异常的可能性及解决办法 模型显示不正确一、 部分或全部面片透明如图 此类...  Unity3D优化方案_互联网_IT/计算机_专业资料。写在...需要处理的顶点数目的、屏幕分辨率、显存等因素有关...而在建模时,有一条我们需要记住:尽可能减少模型中...  利用缓存解决Unity3D卡的问题_计算机软件及应用_IT/...一把天枰,一旦预加载过多了你的游戏内存可能就爆...会先判断模型身上的资源是否在内存里,如果 内存没有...  估计是破解 Unity3D 造成的,该破解文件可能是不支持 WIN7 下的。解决方法:换...2.将模型的面板的 Rig 部分的动画 AnimationType 改为 none 八、坐标系向量...  方法二:此方法不但解决 3D 渲图自动关闭问题,还解决了 3D 模型所占空间过大...在视图中右键看不到了工具栏 此问题可能是误点了某一个热键或者是软件亦或者是...  Unity3D开发者常见问题20条_IT/计算机_专业资料。1:天空盒有接缝怎么解决? 答...答:Unity 中可设置双面 Shader,最简单有效的办法是直接做成双面的实体模型. 15...}

我要回帖

更多关于 unity打开后总是bug 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信