As you probably now, scanning UDP opened ports is painful because UDP is not connected, so you cannot rely on TCP SYN/SYN-ACK to find opened ports.
The ultimate network scanner
nmap knows how to perform an UDP scan:
$ nmap -sU -p1-65535 <target>
You can add useful options such as
-sV (probe open ports to determine service/version info). The scan is much longer than a TCP scan, but
sometimes it works. Yes, sometimes. Recently I started a simple UDP server (with
socat) on a random port and challenged myself to find it within the whole 1-65535 range: I appeared to be unable to find it with nmap (I'm probably misusing nmap).