You do not call your code, Unity does
A Unity script has no main. You write a class deriving from MonoBehaviour and give it methods with specific names, and the engine calls them at defined moments. Nothing invokes Update but the engine, and it finds these methods by convention, not by an interface you implement.
public class Mover : MonoBehaviour
{
private void Awake() { } // object loaded
private void OnEnable() { } // became enabled
private void Start() { } // first frame it is enabled
private void Update() { } // every rendered frame
}
They can be private, which surprises people: Unity calls them through its own machinery, so access modifiers do not matter. That also means a typo is silent. Write Updte() or void update() and you get no error and no call, just a script that mysteriously does nothing. It is the single most common beginner bug in Unity.

