Never getting action to fire (Send Messages)

I have a player object with Player Input and my Character Input components on them. My character input is doing super-simple things, but I can’t get the OnMove to fire for the given action. The Debug.Log never appears when I try to execute the action.

What am I doing wrong here? I thought I’d followed the docs.

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;

[RequireComponent(typeof(Rigidbody2D))]
public class CharacterInput : MonoBehaviour
{
    [SerializeField] private float speed;
    private Rigidbody2D rb;

    void Start()
    {
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
       
    }

    public void OnMove(InputValue input)
    {
        Debug.Log("aha");
        Vector2 inputVec = input.Get<Vector2>();
        HandleMove(inputVec);
    }

    private void HandleMove(Vector2 fromInupt)
    {
        transform.position += new Vector3(fromInupt.x * speed * Time.deltaTime, 0, fromInupt.y * speed * Time.deltaTime);
    }
}

Did you try creating it based on the input system examples? It’s a really helpful way to get started with the input system.

Import them: https://forum.unity.com/attachments/upload_2021-1-2_14-51-22-png.765757/

To use PlayerInput, you want the SimpleDemo_UsingPlayerInput scene.

Unlike you, they’re using Unity Events:

And their code looks like:
public void OnMove(InputAction.CallbackContext context)

However, if you want to use SendMessages, I think you have to use an object parameter and cast it yourself:

    public void OnMove(object context)
    {
        var input = context as InputValue;
        m_Move = input.Get<Vector2>();
    }

6681163--765799--upload_2021-1-2_15-50-31.png

Worked for me.