Whyt does my code not work

Why doesn’t it work? The controller.Move is the problem but i cant find it

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class playermotor : MonoBehaviour
{
    private CharacterController controller;
    public float speed = 5f;
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponent<CharacterController>();
          }

    // Update is called once per frame
    void Update()
    {
        
    }
    //receive the inputs for our inputmanager.cs and apply them to our character controller
public void processmove(Vector2 input)    
{
Vector3 movedirection = Vector3.zero;
movedirection.x = input.x;
movedirection.z = input.x;
controller.Move(Transform.transformDirection(moveDirection) * Speed * Time.deltaTime); 
}
}

replace this:

void Update()
{
    
}

with:

void Update()
{
vector2 MoveVec = new Vector2(Input.GetAxis("Horizontal"),Input.GetAxis("Vertical"));
    processmove(MoveVec)
}

No offence but this problem is kind of basic.
Only saying that since diving into gamedev without knowing how to code is a awful idea/
I recommend learning how to code first, there are some great tutorials on c# so look for those, then look for unity tutorials

Fixed Code

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class playermotor : MonoBehaviour
{
    private CharacterController controller;
    public float speed = 5f;
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponent<CharacterController>();
          }

    // Update is called once per frame
    void Update()
{
    vector2 MoveVec = new Vector2(Input.GetAxis("Horizontal"),Input.GetAxis("Vertical"));
    processmove(MoveVec)
}
    //receive the inputs for our inputmanager.cs and apply them to our character controller
public void processmove(Vector2 input)    
{
Vector3 movedirection = Vector3.zero;
movedirection.x = input.x;
movedirection.z = input.y;
controller.Move(moveDirection * Speed * Time.deltaTime); 
}
}

Read the end of my previous Reply.

You should really learn to keep a tidy workspace.

If you do it, do it right. I am assuming you are trying to make a FPS controller.

using UnityEngine;

public class PlayerMotor : MonoBehaviour
{
    // Always use [SerializeField] private ... instead of public
    [SerializeField] 
    private float _Speed = 5f; // Units traveled in one second
   
    private CharacterController _Controller;

    private Vector2 _InputVector;

    // Assign the character controller
    void Start()
    {
        _Controller = GetComponent<CharacterController>();
    }

    // Get input in update
    private void Update()
    {
        _InputVector = new(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
    }

    // Execute movement and physic stuff based on a fixed value, not based on the variable framerate
    void FixedUpdate()
    {
        UpdateMove();
    }

    // Move
    private void UpdateMove()
    {
        // Assign input
        Vector3 moveDirection = (transform.forward * _InputVector.y + transform.right * _InputVector.x).normalized;

        // Execute movement
        _Controller.Move(_Speed * Time.fixedDeltaTime * moveDirection); // Put vectors to the right side for optimization
    }
}

You have no parameter Speed, did you want to use the parameter speed?

@Dodozijndood Not completely sure what problem is but u haven’t called function processmove in update.