Unity 遇到问题:空格键输入不起作用

问题描述 投票:0回答:1

我正在尝试为大学项目编写视频游戏。我从播放器控件开始,但空格键输入有问题。它有时只注册输入,我还使用了 ceck 变量来查看是否是跳转代码的问题,但我发现 Unity 并没有很多时候注册输入。

public bool control;


forzaSalto = 300;

Rigidbody2D player;
float? asseY;
public bool saltando;

void Awake()
{
    player = GetComponent<Rigidbody2D>();
    player.Sleep();
}

private void FixedUpdate()
{
    if ((verticale != 0 || orizzontale != 0) && !accovacciato)
    {
        Vector3 movimento = new Vector3(orizzontale * velocita, verticale * velocita, 0.0f);
        transform.position = transform.position + movimento * Time.deltaTime;
    }
    Gira(orizzontale);

    if (transform.position.y <= asseY && saltando)
    {
        Atterraggio();
    }

    if (Input.GetButtonDown("Jump")){
        control = !control;
    }

        



    if (Input.GetButtonDown("Jump") && !saltando)
    {
        asseY = transform.position.y;
        saltando = true;
        player.gravityScale = 1.5f;
        player.WakeUp();
        player.AddForce(new Vector3(transform.position.x + 7.5f, forzaSalto));
    }
}

我尝试调整跳跃代码,但它仍然不起作用,然后我使用 ceck 变量来查看问题是 Unity 没有看到我的空格键输入。与控制器也不起作用。它有时只记录输入。我正在使用 Unity 2022

c# unity-game-engine unityscript
1个回答
0
投票

FixedUpdate()
中,处理来自物理引擎的所有更新。这仅以规则(固定)帧/时间间隔发生。由于您不使用物理引擎进行运动,因此不需要使用
FixedUpdate()

尝试使用

Update()
,因为 Unity 可能会错过一些输入或使用
FixedUpdate()
处理它们太晚。

© www.soinside.com 2019 - 2024. All rights reserved.