Although books may exist for a specific case as Unity, I do agree that it's quite easy to catch up using the docs and tutorials provided by Unity themselves. They are quite extensive and can really help you from the ground up, from my experience at least. Though this was after already having reasonable experience with general game programming frameworks like XNA.
Are you really bothered about them not being related to C# or JavaScript? If so, the only book i can personally recommend on this specific topic is learning c# by programming games, although that assumes you are quite the absolute beginner and may get you to lose interest because of this quickly. If the language doesn't make a difference to you, an easy recommendation is the game programming gems series.
Aside from that, in my opinion you should get into some of the basic math of 3D game development. I personally really like 3D math primer , but can become a bit too much for the basics required for general game programming, leaving graphics aside. At least getting into some vector math and knowing a few things about matrices is definitely worth it. I do not know about any javascript/c# equivalents to the named book.
After getting into these basics, you could focus more on the specific topics (such as physics as you mentioned), depending on your own preference (regardless whether Unity can do this for you).
The best recommendation from a personal experience I can give you is to not focus on making your target game. Just play around, it's the most useful tool Unity has as you can see the result of your work very quickly. Maybe your idea is something you really like doing, maybe you will get at something more fun by playing around. Important is that you like working on it.
What do you mean by engine books, though? I usually understand them as being about making a game engine, rather than learning to work with them. If you mean the latter and are interested in books from other engines to more easily get into Unity
Mind you that although Unity generally calls it javascript themselves, it's quite a bit different. For C# there is no such difference (at least not on that part).
Offtopic:
The biggest thing for me was the use of so many public variables in order to expose things to the editor. It bothered me for a while, but eventually I gave in because it really does simplify things.
You don't have to make them public. You can use the serialize field attribute instead, which allows you to use any access modifier. Having worked in a professional environment with Unity as a programmer, I know it can be a requirement to use this over disrespecting encapsulation. It's not a bad practice to getting used to favoring this over public variables.