微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity2D“ Input.GetKeyDown不再起作用

如何解决Unity2D“ Input.GetKeyDown不再起作用

我是Unity编程和游戏开发的初学者,所以请耐心等待。

我试图在按下按钮时向玩家施加力量。其背后的主要概念是,如果玩家面对左侧或右侧,则应该朝该方向发射。

我一直在尝试使用“ InputGetKeyDown(KeyCode.A / D)”命令,根据我最后按下的按钮(“ A”或“ D”)来检测玩家是向左还是向右。 / p>

我制作了两个私人bool(IsFacingRight和IsFacingLeft)。 IsFacingRight认情况下为true,Left开始为false,但是如果玩家切换方向,则布尔值将相应更改。当我按下左移键时,发射就会发生,但是也没有注册

我尝试使用“ Debug.Log”来查看代码是否检测到输入,并且按我的预期没有。当我按“ A”或“ D”或“ LeftShift”时,调试控制台中将不会出现任何内容。因此,现在我确认团结不会检测到输入。

代码要大得多,但是所有可以正常工作的代码都应该在下面列出。我还应该提到,除了上面提到的所有内容之外,代码没有任何错误,并且模拟运行完美。这是代码

    private bool IsFacingR = true;
    private bool IsFacingL = false;
    public Rigidbody2D RB;
    private float thrust = 20f;
    void Sliding()

    {
        if (Input.GetKeyDown(KeyCode.D))
        {
            Debug.Log("Im R");
            IsFacingR = true;
            IsFacingL = false;
        }
        if (Input.GetKeyDown(KeyCode.A))
        {
            Debug.Log("Im L");
            IsFacingR = false;
            IsFacingL = true;
        }
        if (Input.GetButtonDown("Crouch")) ;
        {
            Slide();
        }
    }



    void Slide()
    {
        
        if (IsFacingR = true) ;
        {
            RB.AddForce(Vector2.right * thrust);
        }
        if (IsFacingL = true) ;
        {
            RB.AddForce(-Vector2.right * thrust);
        }
    }

解决方法

您没有调用Sliding()方法。 将此方法重命名为Update(),确保您的类继承了MonoBehaviour,并且该类作为组件在场景中处于活动状态的GameObject上。

,

您应该将此添加到您的单行为中;

void Update(){
    Sliding();
}

您还可以像这样处理isFacingL;

private bool IsFacingL => !IsFacingR;

,

根据您提供的代码,从未更新IsFacingRIsFacingL的原因是因为从未调用过函数Slide()Sliding()

如果您的课程从MonoBehaviour扩展,则可以使用Update()函数,该函数每帧都被调用。

void Update() {
    this.Sliding();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?