A unicast address is used to refer to a single host. It is ment to send data to a single destination.
A multicast address can be used to deliver a package to a group of destinations. Any packet sent to a multicast address, will be delivered to every host that has joined that particular group.
Since IPv6 has no support for the broadcast address, any function that used to rely on broadcasts will now be using multicast addresses. This has the great advantage of (ab)using less traffic, as only those hosts that are interested in it, will join that particular multicast group and receive the packets. If the host hasn’t join the group, the packets will be ignored at the hardware level – not asking any resources from the OS.
Multicast addresses are in the range of FF00::/8.
The anycast address is very similar to the multicast address, but packets will be delivered to only one random host, instead of the entire group.
Anycast address don’t have a specific range, as they are exactly the same as regular unicast addresses. This means that a hosts has no way to distinguish a unicast from an anycast address when it sends a packet.