总会因为一些奇奇怪怪的原因出现Bug,花半天时间解决,最后又感慨大多Bug出现的原因是不了解Unity某个组件、某个功能的使用原理。于是,本文用于记录个人开发过程中遇到的这类bug以及相关注意点。(长期更新)
Bug001:使用OnMouseDown和Physics.Raycast,点击物体时,Physics.Raycast失效。
代码无误的情况下,应检查Camera的tag,我所出现的错误便是删除了原来的Camera,应为场景中存在的主摄像机其选择tag:MainCamera。
Bug002:点击/按下某个键时,多次执行一个动画/动作。
1.可能是动画开启了Loop导致多次播放动画。
2.输入API问题,大概率使用了GetKey、GetMouseButton,它们是保持按下的状态。
只检查按下一次,应使用GetKeyDown、GetMouseButtonDown。
GetKey在用户按下 name 标识的键时返回true。
GetKeyDown在用户开始按下 name 标识的键的帧期间返回true。
Bug003:Unity无法创建规则瓦片、动态瓦片。
今天在检查项目的时候,发现动态瓦片没有动了:
如果是旧版本项目更新为新版本项目,需要在Package Manager中额外安装2D Tilemap Extras。
Bug004:Unity Scene界面一直闪烁。
Edit->Project Settings->Player->Other Settings->Color Space->Linear
Bug005:Unity动画切换像卡了一下。
记得要取消勾选Has Exit Time,这里即使数值为0,也还是会卡一下。
Bug006:动画重复播放
问题描述:在制作暴击动画的过程中,敌人或玩家受击时,暴击特效播放了两次及以上。
解决方法:关闭动画的loop。
Bug007:Inspector不显示公开字段、存储数据不显示。
如果是某个类,顶部需要添加System.Serializable。
浙公网安备 33010602011771号