123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Events;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Linq;
- public class NickNameManager : Regist
- {
- #region Config
- private static int MaxNicknameLength = 12;
- public static string NickName;
- public static InputField NicknameInputField;
- public static Action OnSetNickNameSucceed;
- private static List<string> DefaultLastNames = new List<string>();
- private static List<string> DefaultFirstNames = new List<string>();
- #endregion
- public override void FirstInit()
- {
- SetNickName (ConfigManager.GetStringFormConfig (PlayerConfigLabel.NickName));
- NicknameInputField = ResourceManager.Get<InputField> (CanvasLabel.T_InputField);
- string defaultNames = ResourceManager.Load<TextAsset>(ResourceLabel.DefaultNickName, Folder.Config).text;
- string[] names = defaultNames.Split('\n');
- DefaultFirstNames = names[0].Split('|')[1].Split(',').ToList();
- DefaultLastNames = names[1].Split('|')[1].Split(',').ToList();
- //Debug.Log(FirstNames.Count);
- //Debug.Log(LastNames.Count);
- //foreach (var VARIABLE in FirstNames)
- //{
- // Debug.Log(VARIABLE);
- //}
- //foreach (var VARIABLE in LastNames)
- //{
- // Debug.LogWarning(VARIABLE);
- //}
- }
- public static bool ShowNickNameSettingPanelFirstTime()
- {
- if (!string.IsNullOrEmpty (NickName))
- return false;
- ShowNickNameSettingPanel();
- return true;
- }
- public static void ShowNickNameSettingPanel()
- {
- if (string.IsNullOrEmpty(NickName))
- {
- ResourceManager.SetActive(CanvasLabel.T_Close, false);
- }
- else
- {
- ResourceManager.SetActive(CanvasLabel.T_Close, true);
- NicknameInputField.text = NickName;
- }
- ResourceManager.SetText(CanvasLabel.T_Tit, Language.GetStr(LanguageLabel.UI__T_Tit));
- if (!TutorialManager.PlazaRoomTutorial && !TutorialManager.VisitTutorial && !TutorialManager.DressroomTutorial)
- {
- ResourceManager.Get(CanvasLabel.C_Main).TweenBacCG();
- }
- ResourceManager.Get (CanvasLabel.T_NickNameBK).TweenForCG ();
- }
- public static void CloseNickNameSettingPanel()
- {
- ResourceManager.Get (CanvasLabel.C_Main).TweenForCG ();
- ResourceManager.Get (CanvasLabel.T_NickNameBK).TweenBacCG ();
- }
- public static void SetNickName(string nickName)
- {
- NickName = nickName;
- ConfigManager.SaveStringToConfig(PlayerConfigLabel.NickName, nickName);
- ResourceManager.SetText(CanvasLabel.C_NickNameLab, nickName);
- }
- public static void SetRandomName()
- {
- NicknameInputField.text = DefaultFirstNames.Random()[0].Trim('\'') + DefaultLastNames.Random()[0].Trim('\'');
- }
- public static void ResetNickName()
- {
- if (NicknameInputField.text == NickName && !string.IsNullOrEmpty(NickName))
- {
- ResetSucceed();
- return;
- }
- ResourceManager.SetText(CanvasLabel.T_Tit, Language.GetStr(LanguageLabel.UI__T_Checking));
- ResourceManager.Get<CanvasGroup>(CanvasLabel.T_NickNameBK).interactable = false;
- if (ChectInputFieldValue ())
- {
- HttpManager.SetNickName
- (
- NicknameInputField.text,
- ResetSucceed,
- ResetFailed
- );
- }
- else
- {
- ResourceManager.SetText(CanvasLabel.T_Tit, Language.GetStr(LanguageLabel.UI__T_Tit));
- ResourceManager.Get<CanvasGroup>(CanvasLabel.T_NickNameBK).interactable = true;
- }
- }
- public static void ResetFailed(string str)
- {
- ResourceManager.SetText(CanvasLabel.T_Tit, Language.GetStr(LanguageLabel.UI__T_Tit));
- ResourceManager.Get<CanvasGroup>(CanvasLabel.T_NickNameBK).interactable = true;
- Bubble.Show(null, str);
- }
- public static void ResetSucceed()
- {
- ResourceManager.Get<CanvasGroup>(CanvasLabel.T_NickNameBK).interactable = true;
- SetNickName(NicknameInputField.text);
- AudioManager.PlayClip(AudioLabel.Close);
- CloseNickNameSettingPanel();
- OnSetNickNameSucceed.SafeInvoke();
- }
- public static bool ChectInputFieldValue()
- {
- NicknameInputField.text = NicknameInputField.text.Trim();
- int charCnt = 0;
- int maxLengthIndex = 0;
- for (int i = 0; i < NicknameInputField.text.Length; i++)
- {
- if (NicknameInputField.text[i] <= 127)//英文字符
- {
- charCnt++;
- }
- else if (NicknameInputField.text[i] > 127)//中文字符
- {
- charCnt += 2;
- }
- if (charCnt > MaxNicknameLength)
- {
- maxLengthIndex = i;
- }
- }
- if (charCnt == 0)
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__T_AllWhiteSpace));
- return false;
- }
- else if (charCnt > MaxNicknameLength)
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.UI__T_TooLong));
- NicknameInputField.text = NicknameInputField.text.Substring(0, maxLengthIndex);
- return false;
- }
- else
- {
- if (StringFilter.ContainSensitiveWord(NicknameInputField.text))
- {
- Bubble.Show(null, Language.GetStr(LanguageLabel.Common__ContainSensitiveWord));
- return false;
- }
- else
- {
- return true;
- }
- }
- }
- }
|