private const string materialName = "Common SDF Normal.mat";
private static Material _material_Normal;
public static Material Material_Normal
{
get
{
if(_material_Normal is null)
{
// 从MaterialReferenceManager获取已加载的材质
int hash = CaculateTMPTagHash(materialName.Replace(".mat", ""));
if (MaterialReferenceManager.TryGetMaterial(hash, out Material material))
{
_material_Normal = material;
}
else
{
// 如果MaterialReferenceManager中没有,尝试通过UIManager加载
var mat = UIManager.instance.LoadTMPMaterial(materialName);
MaterialReferenceManager.AddFontMaterial(hash, mat);
_material_Normal = mat;
}
}
return _material_Normal;
}
}
public static int CaculateTMPTagHash(string tag)
{
if (string.IsNullOrEmpty(tag)) return 0;
int hashCode = 0;
for (int i = 0; i < tag.Length; i++)
{
int unicode = tag[i];
hashCode = (hashCode << 5) + hashCode ^ unicode;
}
return hashCode;
}
public void OnSelect_Color_141418_bbb5c8(TextMeshProUGUI tmp)
{
if (tmp is not null)
{
tmp.color = this.IsOn ? "#141418".ToColor32() : "#bbb5c8".ToColor32();
tmp.fontMaterial = this.IsOn ? Material_Normal : tmp.font.material;
}
}
最后修改:2025 年 08 月 15 日
© 允许规范转载