using System.Text; using UnityEngine; using UnityEngine.UI; /// /// 修改公告界面 /// public class GuildChangeBroadcastWin : UIBase { [SerializeField] InputField inputField; [SerializeField] Button okBtn; protected override void InitComponent() { okBtn.SetListener(() => { string msg = inputField.text; if (!CheckLimit(msg, out int errorCode)) { ShowErrorTip(errorCode); return; } SendPack(msg); CloseWindow(); }); } protected override void OnPreOpen() { var guildInfo = PlayerDatas.Instance.fairyData.fairy; if (guildInfo == null) return; inputField.placeholder.GetComponent().text = string.IsNullOrEmpty(guildInfo.Broadcast) ? Language.Get("Guild_62") : guildInfo.Broadcast; ; inputField.text = string.Empty; } private void SendPack(string msg) { CA623_tagCMChangeFamilyBroadcast pack = new CA623_tagCMChangeFamilyBroadcast(); pack.Msg = msg; GameNetSystem.Instance.SendInfo(pack); } private bool CheckLimit(string info, out int errorCode) { errorCode = 0; if (string.IsNullOrEmpty(info)) { errorCode = 0; return false; } if (SatisfyLength(info)) { errorCode = 1; return false; } if (DirtyWordConfig.IsDirtWord(info) || UIHelper.HasSpecCheckChat(info) || DirtyNameConfig.IsDirtName(info)) { errorCode = 3; return false; } return true; } private bool SatisfyLength(string name) { int length = Encoding.Default.GetBytes(name).Length; int maxlength = inputField.characterLimit * 3; //纯中文字数 return length > maxlength; } private void ShowErrorTip(int _errorCode) { switch (_errorCode) { case 0: //空 SysNotifyMgr.Instance.ShowTip("ChatInfoNoNull"); break; case 1: // 长度过长 SysNotifyMgr.Instance.ShowTip("NameError2", inputField.characterLimit); break; case 3: // 脏字 SysNotifyMgr.Instance.ShowTip("NameSensitive"); break; } } }