从另一个类调用方法:“未将对象引用设置为对象的实例。”

时间:2021-03-04 04:56:32

标签: c# monogame

我正在创建一种根据按下的键在屏幕上移动精灵的方法

class InputController
{
    public void DetectInput (Vector2 position)
    {
        if (Keyboard.GetState().IsKeyDown(Keys.W))
        {
            position.Y -= 1;
        }

        if (Keyboard.GetState().IsKeyDown(Keys.S))
        {
            position.Y += 1;
        }

        if (Keyboard.GetState().IsKeyDown(Keys.A))
        {
            position.X -= 1;
        }

        if (Keyboard.GetState().IsKeyDown(Keys.D))
        {
            position.X += 1;
        }

尝试从我的其他班级调用,如果出现错误:

<块引用>

System.NullReferenceException: '未将对象引用设置为对象的实例

InputController 为空

这是其他类的相关代码

private InputController InputController;

protected override void Update(GameTime gameTime)
{
    InputController.DetectInput(_position);
}

1 个答案:

答案 0 :(得分:2)

您的问题是 InputController == null。可能在您的代码中的某个地方,它没有运行:

InputController = new InputController();