A good method to spot quickly inverted face in Blender is to use Textured view instead of Solid view.
And you will see immediately that your cannon model has indeed inverted faces.
And i notice that the interior and exterior of the canon use the same faces. Maybe Unity does not support double sided faces (i know that some engine does), that could then be why from a side you see the texture and on the other side it’s invisible, i don’t know Unity so i can’t say more.
Blender do not support double sided faces, you need to double that face to imitate the effect (with each faces having opposed normals), there’s a solution for rendering using nodes, but for the case of the model being for a game engine, it shouldn’t have any effect
If it is indeed the case, you would then need to solidify the cannon model by using the solidify modifier and tweak the “Thickness” value of the modifier to get the interior being actually modelled and not using the same faces as the exterior :
But that said, the solidify modifer obviously increase the polycount, as it adds additional geometry to the model, so for low poly solution it’s probably not the best choice.
The best solution i think would be to find how to enable double sided faces in Unity (assuming Unity actually support them), if it’s not possible, i think only the solidify modifer would solve your problem.