首页 > 解决方案 > 从另一个类调用方法:“对象引用未设置为对象的实例。”

问题描述

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

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: '对象引用未设置为对象的实例

输入控制器为空

这是其他类的相关代码

private InputController InputController;

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

标签: c#monogame

解决方案


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

InputController = new InputController();

推荐阅读