OnPointerClick uses Unity’s event system, OnMouseDown uses the physics engine. Therefore, OnMouseDown is generally better suited for gameplay controls than for UI. OnPointerClick should work best with the UI since it relies on EventSystem and should help you with clicking through objects etc. You won’t need a Collider for OnPointerClick, but you will for OnMouseDown. This isn’t to say that you can’t use the EventSystem for gameplay input, if you wanted! I generally avoid OnMouseDown as it’s a bit of a beginner technique and not very robust. You can implement your own raycasting code for more control and optimization, if you’re comfortable doing so.