using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; using System.IO; // Required for Directory.GetFiles() public class AutoRemapTextures : MonoBehaviour { public string textureFolder = "Assets/Models/Materials"; // Change to your texture folder path // Start is called before the first frame update void Start() { Renderer renderer = GetComponent(); if (renderer == null) { Debug.LogError("No Renderer found on this object!"); return; } foreach (Material mat in renderer.sharedMaterials) { if (mat == null) continue; // Try to find the texture with the same name as the material string[] textureFiles = Directory.GetFiles(textureFolder, mat.name + ".*"); foreach (string texturePath in textureFiles) { if (texturePath.EndsWith(".meta")) continue; // Ignore meta files Texture2D texture = AssetDatabase.LoadAssetAtPath(texturePath); if (texture != null) { string textureProperty = mat.HasProperty("_BaseMap") ? "_BaseMap" : "_MainTex"; mat.SetTexture(textureProperty, texture); Debug.Log($"Assigned {texture.name} to {mat.name}"); } else { Debug.LogWarning($"Texture not found for material: {mat.name}"); } break; // Stop after first match } } } }