Unity C#:隐藏角色姓名中的括号及括号内的文字
Unity C#:隐藏角色姓名中的括号及括号内的文字
在Unity C#中,我们经常需要处理角色姓名,有时角色姓名中可能包含括号及括号内的文字,例如'角色A(称号)'。如果我们想要隐藏这些括号和括号内的文字,可以使用正则表达式来替换字符串。
步骤:
- 添加命名空间: 在ChatPanel类中添加正则表达式的命名空间:
using System.Text.RegularExpressions;
- 修改UpdateChat()方法: 在UpdateChat()方法中,对角色姓名进行处理,使用正则表达式替换括号和括号内的文字。
// 左侧角色姓名处理
if (chatList[CurrentIndex].Position == ChatPosition.Left)
{
ImageLeft.sprite = ChatSystem.Instance.imageDic[chatList[CurrentIndex].CharacterName];
// 使用正则表达式替换括号和括号内的文字
string leftName = Regex.Replace(ChatSystem.Instance.GetCharacterName(chatList[CurrentIndex].CharacterName), @'\(.*\)', '');
LeftName.text = leftName;
ImageLeft.gameObject.SetActive(true);
ImageRight.gameObject.SetActive(false);
LeftName.gameObject.SetActive(true);
RightName.gameObject.SetActive(false);
}
// 右侧角色姓名处理
else
{
ImageRight.sprite = ChatSystem.Instance.imageDic[chatList[CurrentIndex].CharacterName];
// 使用正则表达式替换括号和括号内的文字
string rightName = Regex.Replace(ChatSystem.Instance.GetCharacterName(chatList[CurrentIndex].CharacterName), @'\(.*\)', '');
RightName.text = rightName;
ImageLeft.gameObject.SetActive(false);
ImageRight.gameObject.SetActive(true);
LeftName.gameObject.SetActive(false);
RightName.gameObject.SetActive(true);
}
解释:
Regex.Replace()方法用于替换字符串中的匹配项。@'\(.*\)'是正则表达式,用于匹配括号和括号内的所有字符。''是替换字符串,表示将匹配项替换为空字符串。
注意:
- 该代码假设括号内的文字不包含其他括号。如果括号内可能包含其他括号,需要修改正则表达式的匹配规则。
- 该代码示例假设您已经拥有 ChatPanel 类以及相关变量和方法。
完成上述步骤后,角色姓名中的括号和括号内的文字就会被隐藏,从而实现更简洁的角色命名显示。
原文地址: https://www.cveoy.top/t/topic/phSa 著作权归作者所有。请勿转载和采集!