我有这段简单的代码。我已经用if语句检查了如果我按下暂停按钮,跳跃动画不会被触发。在暂停菜单被激活后,当我点击恢复时,游戏会立即开始,角色会直接跳走。我已经试过使用协程,带有真实的和时间。timeScale = 0. 001,但动作还是会被触发,有什么解决的办法吗?
private void Jump()
{
if (Input.touchCount > 0 && rb.velocity.y == 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
startTouchPosition = Input.GetTouch(0).position;
if (startTouchPosition.x < screenMinusButton.x || startTouchPosition.y < screenMinusButton.y)
rb.velocity = new Vector2(rb.velocity.x, jumpForce);
}
}
4条答案
按热度按时间0pizxfdo1#
尝试把不可见的全屏面板,按钮/菜单的背面。
yfwxisqw2#
角色真的会跳还是只是动画的问题?
试着在检查器中检查你的rb.velocity。如果不可见,试着在上角启用调试模式。
如果Y没有变化,可能只是动画触发错误
kxxlusnw3#
检查事件系统是否有任何游戏对象当前被认为是活动的。如果是,触摸是在按钮上执行的,否则触摸不在按钮上。
使用UnityEngine添加。事件系统;在脚本的顶部。然后按如下所示修改代码。
2hh7jdfx4#
使用游戏对象上的是指针()
我最近找到了答案。