How to apply textures to 3d models - unity3d

I downloaded the 3d character model. But, the model is not applied textures. Is there a way to apply textures to models in Unity?
Or do I have to create a material myself and attach a texture to it?
I tried this method, but it was difficult when there were multiple textures. Any help would be appreciated.

When you import a 3D model into Unity, it will automatically create a material for the model and apply the textures to it.
If you are having trouble with the textures not being applied to the model, there are a few things you can try to fix the issue:
First make sure that the textures are in the same folder as the 3D model. Unity will automatically look for textures in the same folder as the model, so if the textures are in a different one, they will not be applied.
Also check the texture import settings. When you import a texture into Unity, it will automatically assign certain import settings to the texture. These settings can affect how the texture is applied to the model, so it is important to make sure they are set correctly. To do this, select the texture in the Assets window and then go to the Inspector window. In the Inspector window, you will see the texture import settings, which you can adjust as needed.

Yes, most definitely can you apply textures to models in Unity.
As you have guessed correctly, textures are applied via a Material. If you import a model, by default there will be a standard Material assigned to it. However, you can also create one yourself and assign it to the Material list of the MeshRenderer component.
Depending on the shader you choose for your Material, there will be different shader properties, including the ones for textures. Usually, there is a Albedo property which can be used to set a texture. In the editor, you can simply drag and drop your texture on to it. If you want to apply a texture at runtime, you can set the texture with yourMaterial.SetTexture(shaderTexturePropertyName e.g. _MainTex).

does the model come with the textures? If you are trying to use your own textures, it might now work because it's not properly "UV Mapped". Or it might work but it will look messy.
If the textures came with the model, then you can just drag and drop the textures into a new material then assign it to the proper mesh.
I can help you better if you can elaborate more on how you are importing your models.

You can apply mew material with variable color,
if the downloaded model is already mapped you can make your own texture map with any image editing software, though it is hard to tell whats going where, you can start with using a checkerboard to test it out.
if its not uv mapped, you need softwares that can do it, unity does not have the ability to create uvmap. 3d software like maya,blender,c4d,3dmax has the ability to create uv map, there are also specific softwares that are just for uv ,here or texturing like substance painter

Related

Import model from Blender to Unity with single texture

so I spend hours googling and "trial and error"ing, but I still could not figure this out.
I have (half) a chessboard modeled in Blender. I bake all my materials to a single png with UV mapping. It looks like this:
I export the model as an .fbx and the baked texture as a .png. Both are imported to unity.
My goal is to have a single texture/material for the model.
The problem is, that unity still recognizes all squares etc. as separate objects with their own standard UV. When I map the combined texture to the model it is all messed up.
I can see why this happens, but not how to change the mapping so it picks out the right pixels of the texture. Is there something I can do to fix this?
Here is a picture of the model in unity.
Thanks in advance.
I finally found a work around which works perfect. You can merge objects in Blender. The steps I took:
merge all squares and other objects into one. I used this site as a tutorial
create a new uv map for this combined object
bake the textures to the new uv map
export model as .fbx
export texture as .png
import all to unity
create material from texture
apply material to model
Works perfectly fine for me :D

How to modify 3d vehicle color based on the Png image in unity

There is a vehicle in unity game project. Need to create the mod system for that vehicle skin based on the png image. we are not sure how to proceed with this but we are sure definitely there is a way to do this because have seen some games are working with mod system. Did anyone have any idea?
Textures are applied to objects using materials.
To change the color, I would assign the new material in the inspector, or try to set the color of the material in the material properties.
Either can be done with code if that needs to be done in runtime.

Accessing a secondary texture normal map in shader graph?

I'm using Unity 2020.1.3f1's URP, with the new 2D renderer system.
As of right now, I have objects that change between the built in "Sprite-Lit-Default" material, and a material with the custom built pixel outline shader detailed here: https://danielilett.com/2020-04-27-tut5-6-urp-2d-outlines/
This worked well and good, but I recently added lights, and a normal map to my sprites as a secondary texture in the import settings. The default lit texture has no problems displaying the normal map, but when I attempted to modify my shader graph to include the normal map, it doesn't import like the sprite texture does when _MainTex is set as the reference.
I've tried _NormalMap (which is the name of the secondary texture in the importer!) as well as _NormalTex, but it always ends up not importing the normal map. I even attempted changing _MainTex to a Texture2D, but given that kept sparking an error, I didn't think it was the right way to go about it. (This one to be specific.)
Error assigning 2D texture to 2DArray texture property '_MainTex': Dimensions must match
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
Am I missing something here? All the tutorials I can find online only show people dragging the normal map in through the inspector, but this material is going to be used by many different sprites, so that seems...counterintuitive.
On top of this, the default material/shader has no issues with this, so I feel like I'm either missing something, or I'm going to end up having to code my sprites to change material through code instead of the animator, just for this small, annoying quirk..
Blackboard Properties, and nodes. This just goes into the normals input.
Inspector panel showing the missing normal map slot.
And the Secondary Textures in case I somehow misnamed it, why not?
(EDIT)
So, an update on this, for anyone else who runs into this same issue.
I managed to find a section of the shadergraph documentation that seems to be the only part talking about this:
It is required to name the reference for MainTex as _MainTex to render Sprites. It is also recommended to name the references for Mask as _MaskTex and Normal as _NormalMap to match the Shader inputs used in this package.
So from what I gather from that, _MainTex is the only one that's automatic in ShaderGraph.
After a full day of looking up tutorials, I've noticed that every single one of them simply set the normal map and extra textures as the default textures so they'll show up without being assigned manually.
I think this is possible with hand-written shaders, but I've decided to just go with a simple unlit shadergraph on a hand-drawn sprite outline, displayed on a separate gameobject parented to the main object.
I'm not posting this as an answer in case someone else finds a solution to it in the future, and since this isn't...really a solution in my eyes.
I don't know if you have figured this out yet but I'll try to answer since I had the same problem. Create a new Texture2D node, convert it to a property, and have the reference as _NormalMap, connect that to the sample texture 2D node as normal, and plug that into the sprite lit master. Now go into the sprite editor, assign the normal maps as a secondary texture, and make sure the name is the same as in your shader, _NormalMap (or something else, as long as it's the same). This currently has worked for me, shader graph detects the normal map texture by reference automatically. Attached below are some images to help and the finished result on the character sprite, which uses a custom shader I picked up from a tutorial and added the normal map to.
Shader Graph Sprite EditorSprite Editor 2 Normal Map result

Importing blender textured objects into unity

I am able to get this particular textured model from a 360 camera in blender. Blender Image
However, how do i get this .obj model into unity? I am only able to get the shaded version of it, not the textured version. Unity Image
When you export the .obj you should have a .mtl which contains the material data and texture mapping. Make sure when importing into unity (and exporting from blender) the file is generated and read.
Check your blender material properties and the individual texture properties. you should try to combine all materials into a single material so that its easier to reconfigure the textures in unity.
Once imported into unity, check the material settings and check if you need to reference the texture files again, most often when importing exporting .obj, the texture path gets lost so you must re-reference it in the target software. Sometimes it is also necessary to re-assign the materials themselves.
Also check your rendering options in unity, you may just be seeing it untextured in the unity viewport. (on the top left corner it says shaded, try changing it to textured or some other option)
You may as well try to use other mutually supported file types, like .3DS which do not use a separate material file, or check for blender add-ons that can export with all necessary settings for Unity.
Finally, your model is way too complex, it is raw data from a 3D scanner or ripper, I suggest you remake it so that you have manual control over each face and texture. (or at least for practice of doing the export-import operation).
More details like pictures of your material settings of both blender and unity would help in assisting you further.

How to use free particles available in the unity store after importing?

I wanted some particle textures for my particle system. I looked up in the unity store and there were some free ones, so I imported them. But when I go inside their textures folder, the textures are full block like images and not like the single transparent texture.
I researched before asking this question but couldn't find anything related to it. My scene is bright so I can't use black background block like textures.
Do I need to edit them further like cropping and removing background? Or am I doing something wrong?
Try this two ways.
(1) Can you try it by creating new material. Just assign a material to the image you want to use.
To create a material==> Assets -> Create -> Material
give name it, adjust it.
"Create a new material and the apply the texture by clicking the blank box next to albido, then selecting the desired texture."from here
done! Assign it to particle system.
(2) Just assign your texture to particle system. In particle import setting try Alpha Is Transparent (In Inspector) checked/unchecked.