在開發網絡遊戲的聊天功能模塊時,須要對字符長度進行限制以避免發送超長包,不過由於玩家輸入了emoji後會致使長度沒法正常處理,此時偷懶的辦法就是限制emoji的輸入git
在UGUI的InputField進行輸入時執行該方法:github
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Text.RegularExpressions;
public class InputRestrictionEmoji : MonoBehaviour {網絡
InputField mtext;code
private void Start()
{
mtext = GetComponent<InputField>();
if(mtext)
{
mtext.onValueChanged.AddListener(OnInputValue);
}
}blog
void OnInputValue(string value)
{
try
{
string msg = mtext.text;
//屏蔽emoji
string result = Regex.Replace(msg, @"\p{Cs}", "");
mtext.text = result;
}
catch
{
Debug.Log("輸入異常文字,出錯");
mtext.text = "";
}
}
}遊戲
若是仍是不放心能夠try-catch一下,記得還要限制一下字符長度啊開發
特別感謝:string
EmojiText https://github.com/zouchunyi/EmojiTextit
Unity-UI-emoji https://github.com/mcraiha/Unity-UI-emojiio
twemoji https://github.com/twitter/twemoji