So from what I am finding, it looks like you can use C++ only in Plugins and then wrap them in C#, is this true?
I am new to using these engines, does this add complexity into the development process with Unity?
I was hoping to avoid learning another language and focus on learning the engine right now. Also I know C++ is the predominant language in the industry right now.
That is correct.
I have used some Third party assets, engine "plugins" basically, that where written in C++. The only real advantage that I know of is that the code was closed source as I only had access to the compiled executable. Well, its an advantage for the plugin developer, not for me as a customer. If I get C# code with a Unity asset, I usually get the code to put into the engine and let it compile it. That gives me the advantage to look into how things are done, fix bugs (One of the C++ plugins had a bug, and it took me quite a while to get the developer to fix it. Would have been easier with c# code), and tweak the code to my projects needs.
Now, I haven't seen anyone yet using C++ for actually writing game in Unity. I am sure it is possible, because some of these thirdparty assets where runtime assets for use ingame.
If they have a performance advantage IDK. Could be. Depends on the performance hit of the translation layer between C++ and C#, don't know if anyone measured it yet.
The big disadvantage of course is complexity. Unity is driven by C#, or Unity Script. All the C++ code you write is a seperate executable that gets called by your game code. So you will need some C# code, at least as "glue code", to trigger your C++ parts.
Now, moving to C# from C++ shouldn't be much of a problem. If anything, C# should be EASIER to use. You can forget about many topics that you cannot in C++, at least unless the engine / framework you are using is not taking care of it (memory management comes to mind).
Add to that that the C# API of Unity is actually pretty clean and easy to use (its basically Mono + Unitys own classes), and I would question why you would want to avoid it.
If you just happen to dislike C# or managed languages in general, that is fine. But given that dislike is strong enough to stop you from making a quite easy transition from one language to another, I'd say Unity might not be the engine for you. If you need to bend a tool until it almost breaks because you don't want to bend yourself to that tools way of working, you might be better off looking for a different tool.
About C++ being the predominant language... yes, for console and PC AAA development that might be true. Its not in the mobile world, or for Indies. Indies and hobbysts generally use the easiest tool they can afford, and that is hardly ever C++ when it comes to programming. I say that as a not so expierienced C++ dev, that tried to get a C++ engine to work for me before (that did wrap C++ until it looked almost like C#, at the expense of flexibility), and currently tries to get into Unreal Engine 4 (which, after using Unitys C# API for 3+ years, just feels clunky).
If you are looking to become the right guy to be hired by AAA studios as a programmer in the future, C++ knowledge is highly advisable, even though Unity is getting quite some traction even with the bigger studios. AAA is becoming so expensive lately that even the big boys try to become scrappy and lean with their smaller projects.
If you just want to develop games in your free time or become an Indie, then don't abandon Unity just because of the language (unless you really cannot get on with it)... there are many things wrong with Unity, but from expierience I can tell you efficiency is one of Unitys strengths that you will struggle to find in other (C++ enabled) engines.
If you really cannot get Unity / C# to work, your next best bet is Unreal Engine 4. From my own expierience, this engine is quite a step up in the complexity / inefficiency ladder. Its still worlds apart from some of the other engines (CryEngines comes to mind) where you really have to work with dated looking tools and clunky APIs. And of course, UE4 has MANY advantages over Unity (for example a runtime engine that wasn't written in 2007 and just patched up for every major release like Unitys). This engine has a community that is just as large as Unitys, and quite some documentation (just not as well indexed and complete as the one for Unity).
Its just that when we are talking about efficiency, ease of use and the learning curve, Unity is still on top. If that matters to you more than being able to stay with the language you are most comfortable with, only you can tell.