internal static Material GetMaterial(string guid) { if (materials.ContainsKey(guid)) { return(materials[guid]); } Material mat = new Material(); var info = rmManager.GetFromGuid(guid); if (info == null) { mat.guid = guid; } else { var jsontext = LoadInternalRaw(info.guid); mat.rawJson = jsontext; var json = LoadInternalFile(info.guid); UnityEngine.Config.Material rawMat = UnityEngine.Config.Material.FromJson(json[0] as Dictionary <string, System.Object>); mat.Init(rawMat); mat.shaderGuid = rawMat.m_Shader.guid; } materials[guid] = mat; return(mat); }
public void Init(UnityEngine.Config.Material mat) { shader = Resources.GetShader(mat.m_Shader); UnityEngine.Config.FileMap fms = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Texture; if (fms.IsEmpty()) { mainTexture = null; } else { // Hack, need to read TextureImporter from fms. string guid = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Texture.guid; mainTexture = Resources.GetTexture(guid); mainTextureOffset.x = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Offset.x; mainTextureOffset.y = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Offset.y; mainTextureScale.x = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Scale.x; mainTextureScale.y = mat.m_SavedProperties.m_TexEnvs[0].data.second.m_Scale.y; } }