TMP_TextUtilities无法识别含'e'的完整GUID链接问题求助
解决TMP链接中含'e'的GUID被截断问题
问题:使用TMP的<link>标签构建带GUID的文本链接时,只要GUID包含'e'字符,就会在第一个'e'位置被截断,导致后续解析GUID时抛出异常。
问题根源
TMP解析<link>的ID属性时,会默认尝试将属性值解析为数值类型。当字符串中出现'e'(科学计数法的指数标记),会被判定为数值的终止点,只截取'e'之前的内容。
解决办法
生成<link>标签时,给GUID用双引号包裹,让TMP将引号内的完整内容识别为Link ID,避免被误解析为数值。
修改生成链接的代码:
public string CharacterLink(CharacterInfo info) { // 给GUID添加双引号包裹 return $"<color={characterColor.Format()}><link=\"{info.Id}\">{info.Fullname}</link></color>"; }
获取链接的代码无需修改,info.GetLinkID()会自动返回不带引号的完整GUID,直接用Guid.Parse解析即可。该方法同样适用于其他含特殊字符的Link ID场景,双引号包裹能确保内容被完整读取。
内容的提问来源于stack exchange,提问作者Zita
相关产品推荐
相关产品推荐

