// check if applied by prefab and instance has different texture private bool IsTextureMismatch(UITexture tex) { TexSetter s = tex.GetComponent <TexSetter>(); if (s == null || s.textures.Count == 0) { return(false); } return(s.textures.Count == 1 && s.textures[0].path != EditorAssetUtil.GetAssetRelativePath(tex.mainTexture)); }
protected override void VerifyComponent(Component comp) { UITexture tex = comp as UITexture; TexLoader l = tex.GetComponent <TexLoader>(); if (tex.mainTexture != null && AssetBundlePath.inst.IsCdnAsset(tex.mainTexture) && (l == null || IsTextureMismatch(tex))) { TexSetter setter = tex.GetComponentEx <TexSetter>(); var aref = new AssetRef(); aref.cdn = true; aref.SetPath(tex.mainTexture); setter.textures.Clear(); setter.textures.Add(aref); BuildScript.SetDirty(comp.gameObject); BuildScript.SetDirty(setter); } }