It’s a contract between you and Unity’s EventSystem.
If you implement that contract on a given GameObject, then it will get calls when certain things happen, in this case a mouse click going down.
The docs are unfortunately vague on what constitutes “on a game object” but AFAIK it is to do with the whole way a Graphic Raycaster casts a click into the scene to see what it hits.
If it hits your GameObject then Unity will look for implementations of the IPointerDownHandler interface on that GameObject and if they exist, it will call the implementations in your script.
Using Interfaces in Unity3D:
Check Youtube for other tutorials about interfaces and working in Unity3D. It’s a pretty powerful combination.
PS - in some other languages they are called “protocols”
Sorry, I may have not explained myself. I’ve used interfaces before, but what I don’t understand is how the IPointerDownHandler interface detects the mouse down? I understood interfaces to use blank/empty methods that could then be called by anything that uses it.
Yeah you are basically saying “I am the kinda thing that wants to know about mouse going down.”
Interfaces can be used in all sorts of directions: you could look for them, you could implement them and someone else could look for anyone implementing them, etc.
The coolest direct application in Unity is that interfaces work straight-up with GetComponent<T>();, which means if you are a bullet that hits an enemy, you can do a GetComponent() and call its TakeDamage() method, for instance.