跑酷游戏的一些Bug总结

发表于:2016-3-11 13:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:HONT    来源:51Testing软件测试网采编

  最近把1年前的跑酷游戏demo拿出来重做了一遍,解决了2个之前的遗留bug
  虽然罪魁祸首都是FixedUpdate,但细节又不太一样。这里记录一下
  1.点击空格键,角色会跳跃。而有时会跳的比之前高很多(使用Rigidbody.AddForce)
  解决:
  AddForce之前应该清一下速率,因为是射线检测是否碰到地面,而跳跃后不会立刻离地。
  如果不清,后面几帧会累加AddForce
  清除速率保证离地的一瞬间肯定是正常Force,而非累加Force
  2.有时候接收不到键盘按下的事件
  解决:
  这个比较奇葩,原因是输入检测写在FixedUpdate里:
  void FixedUpdate()
  {
  if (Input.GetKeyDown(jumpKey))
  {
  //Magic Bug
  }
  }
  但用GetKey,检测是否处于长按状态又正常
  void FixedUpdate()
  {
  if (Input.GetKey(jumpKey))
  {
  //Great
  }
  }
  当然,最终解决方法是放到Update里去处理,漏检率0。
  void Update()
  {
  if (Input.GetKeyDown(jumpKey))
  {
  //Great
  }
  }
  可能Unity底层对于GetKeyDown,GetKeyUp之类的方法就是延时一帧去处理的,FixedUpdate存在漏帧的情况,因为它是基于秒的
  后来我把帧数在后面打出来,像14帧FixedUpdate漏帧了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号