I have a bookshelf object that has a single material placed on it currently. However, I would like to have two textures on it placed on different spots that are visible at the same time. Basically, I want a specific texture for the frame of the bookshelf, and another for the inside of it, but I do not know how to do it.
I have tried figuring this out by searching the web, but the end results of each thing that I’ve done doesn’t satisfy what I wan. Either that, or the ways described to go about doing this are way too confusing for someone like me who hasn’t dealt with multiple textures up until this point (or even textures in general really).
You can have multiple materials on the same object in Unity under the Mesh Renderer component. However, keep in mind that if you have multiple materials, that also means that your computer is accessing 2 files. What I would suggest you do is to cbake textures in your 3D modeling application (Blender/Cinema 4D/Maya). A UV map will take textures on your models in Blender and will put them all into an image document that can be applied inside of other programs (known as baking textures). I am not going to explain how this is done specifically, but I am sure you can find tutorials on how to create UV maps or Bake Textures inside of Blender.
Baking is the same as applying materials to your object in Unity. It still uses multiple materials.
In order to UV map separate materials in Unity, you have to assign them a new material in your modelling program, thus the issue is still at hand.
What you need to do is separate your objects in your modelling program. Reducing the draw calls to only 1 or 2 for the “child” objects.
If you do this, make sure your colliders are also separate meshes on the root of the object, as disconnected seems will lead to issues in Unity.
The other approach is using a texture atlas if it suits your game.