

2d移动冲突
,2 年前
发布于技术支持
0
问题描述
请尽可能详细描述您遇到的问题: 我做2d项目,角色能冲刺,冲刺完速度更块,停下后,速度变回原来的, 但是: 我代码,x,y坐标为零,和adws没按下(按下等于false)时才变回原来的。 如果我同时按相反方向的键(a和d或w和s),应该是不动但速度(冲刺速度)不变的呀! 反而没有,变回了原来的速度。 这是为什么? 难道按下相反的键,那两个相反的键的状态为true吗?
相关代码
rb是Rigidbody 2D。
if (rb.velocity.x == 0 && rb.velocity.y ==0 && Input.GetKeyDown(KeyCode.D) == false && Input.GetKeyDown(KeyCode.W) == false && Input.GetKeyDown(KeyCode.S) == false && Input.GetKeyDown(KeyCode.A) == false)
120 次浏览
评论 0
1个回答
0
能需要重新组织逻辑,先检查是否在冲刺状态,然后再检查是否按下移动键,最后处理速度变化。确保在处理按键输入时,对于同时按下相反方向键的情况有明确的逻辑处理,以维持正确的速度状态。
如果你使用的是Rigidbody 2D和velocity来控制速度,也要确保冲刺和停止冲刺的逻辑正确更新了Rigidbody的速度。考虑使用调试工具来跟踪和理解不同输入下角色状态的变化,确保在任何给定的状态下,角色的速度都是你预期的结果
,2 年前回答
评论 0
相关问答
热门文章
查看更多
问
AI
全新AI功能上线
1. 基于Unity微调:专为Unity优化,提供精准高效的支持。
2. 深度集成:内置于团结引擎,随时查阅与学习。
3. 多功能支持:全面解决技术问题与学习需求。

问
AI