I doubt people use C++ if they have another choice. The big problem is that C#'s implementations do not handle memory well enough. The default for them is to heap-allocate most objects, then leave it up to the GC. This means a lot of hacky code to achieve good performance, but it still can't match C++ in many cases. (I'd guess that many apps could see a good double-digit% increase in perf in C# if you could just use the stack more often.)
Plus, if you can use C#, you can probably use F#, which is a far better language than either C++ or C#. Whereas if you need to be runtime-free and C-ABI compatible, your choices of expressive languages are rather limited (Rust being the most exciting one, probably.)
Edit: Also, C++ compilers tend to do a far better job at codegen. Though MS is starting to hint that they're gonna up their JIT story, but they've got a long way to go.
Edit: As to why you'd want to learn one or the other, if you're in games, it seems like you should probably learn C++ because it's so prevalent in games. C# is easy enough to pickup on the side though.
FWIW, I'm a longtime C++ user, and used C# with Unity for a bit. I would recommend C++ if you need high-performance, low-level control, or access to native APIs. I would recommend C# if you want good performance in a Java-like language with the best parts of Java and C++. Also if you want to get a job with the Microsofty sorts of companies that have historically used C#.
However, you are more realistically constrained by your 3D engine. Unity does not have the option of C++ (to my knowledge). I'm assuming Unreal does not support C#. In the case of 3D engines your choice of engine is much more important than language.
It does on the professional version via the plugins system.
They aren't hitting at it, they are releasing RyuJIT and .NET Native on .NET 4.6.
If you want to try a job at the game industry start with C++. Besides Unity, C# tends to be mostly used for tools. In what used to be a domain of MFC/C++ and Qt/C++.
This might change with .NET Native now coming into the picture.
If you rather want to learn a language for a job at the IT industry at large, start with C# which alongside Java has been taking C++'s place, specially in Windows shops.