Main/Manager/LoginManager.cs
@@ -123,12 +123,11 @@ isLogined = true; if (Application.internetReachability == NetworkReachability.NotReachable) { // TODO YYL // ConfirmCancel.ShowPopConfirm( // Language.Get("Mail101"), // Language.Get("L1116"), // () => { } // ); ConfirmCancel.ShowPopConfirm( Language.Get("Mail101"), Language.Get("L1116"), () => { } ); return; } Main/System/ClientVersion/RequestSecretWin.cs
@@ -30,12 +30,10 @@ #endif }); m_Fuwu.SetListener(()=> { // TODO YYL // WindowCenter.Instance.OpenFromLocal<GameAgeWarnWin>(1); UIManager.Instance.OpenWindow<GameAgeWarnWin>().SetFunctionOrder(1); }); m_Yinsi.SetListener(() => { // TODO YYL // WindowCenter.Instance.OpenFromLocal<GameAgeWarnWin>(2); UIManager.Instance.OpenWindow<GameAgeWarnWin>().SetFunctionOrder(2); }); } Main/System/Login/LoginWin.cs
@@ -4,6 +4,7 @@ using System.Diagnostics.Tracing; using UnityEngine; using UnityEngine.UI; using System.IO; public class LoginWin : UIBase, ICanvasRaycastFilter { @@ -60,7 +61,7 @@ m_UserHelp.SetListener(OpenUserHelp); } m_CleanCache.SetListener(ResourcesPath.Instance.CleanCache); m_CleanCache.SetListener(CleanCache); serverRead.SetListener(() => { GameAgeWarnWin win = UIManager.Instance.OpenWindow<GameAgeWarnWin>(); @@ -231,7 +232,7 @@ if (!checkRead.isOn) { // TODO YYL // ConfirmCancel.ShowPopConfirm(Language.Get("agreementTitle"), Language.Get("agreementInfo")); ConfirmCancel.ShowPopConfirm(Language.Get("agreementTitle"), Language.Get("agreementInfo")); LocalSave.SetBool("tqsecretToggle", false); //方便测试 return; } @@ -348,4 +349,77 @@ } } public void CleanCache() { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get("CleanCache2"), (bool isOk) => { if (isOk) { try { // 获取persistentDataPath下的所有文件和文件夹 string[] files = Directory.GetFiles(ResourcesPath.Instance.ExternalStorePath); string[] dirs = Directory.GetDirectories(ResourcesPath.Instance.ExternalStorePath); // 删除所有文件 foreach (string file in files) { if (file.Contains("config")) { continue; } File.Delete(file); } // 递归删除所有文件夹 foreach (string dir in dirs) { if (dir.Contains("config")) { continue; } Directory.Delete(dir, true); } files = Directory.GetFiles(ResourcesPath.Instance.ExternalStorePath + "/config"); // foreach (string file in files) // { // bool isDelete = true; // foreach (string filename in ConfigInitiator.builtinConfig) // { // if (file.Contains(filename)) // { // isDelete = false; // break; // } // } // if (isDelete) // File.Delete(file); // } } catch (System.Exception e) { Debug.LogError("Failed to clean persistent data: " + e.Message); } finally { Clock.AlarmAfter(0.1f, () => { Application.Quit(); }); Debug.Log("Persistent data cleaned."); } } }); } } Main/System/Tip/ConfirmCancel.cs
New file @@ -0,0 +1,328 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class ConfirmCancel { public static Action<bool> OnPopConfirmClickEvent; public static Action<bool> OnPopConfirmClickExEvent; public static Action OnPopSingleConfirmEvent; public static string popConfirmTitle { get; private set; } public static string popConfirmInfo { get; private set; } public static bool IsSingleConfirm { get; private set; } public static string OKName { get; private set; } public static string CancelName { get; private set; } //取消/确认弹框 public static void ShowPopConfirm(string title, string info, Action<bool> func) { popConfirmTitle = title; popConfirmInfo = info; OnPopConfirmClickEvent = func; OnPopSingleConfirmEvent = null; IsSingleConfirm = false; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<PopConfirmWin>()) { UIManager.Instance.OpenWindow<PopConfirmWin>(); } } //取消/确认弹框 func1对应确认按钮旁边的取消按钮 func2对应右上角的圆形取消按钮 public static void ShowPopConfirmEx(string title, string info, Action<bool> func1, Action<bool> func2) { popConfirmTitle = title; popConfirmInfo = info; OnPopConfirmClickEvent = func1; OnPopSingleConfirmEvent = null; OnPopConfirmClickExEvent = func2; IsSingleConfirm = false; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<PopConfirmWin>()) { UIManager.Instance.OpenWindow<PopConfirmWin>(); } } //单按钮确认框 public static void ShowPopConfirm(string title, string info, Action func = null) { popConfirmTitle = title; popConfirmInfo = info; OnPopConfirmClickEvent = null; OnPopSingleConfirmEvent = func; IsSingleConfirm = true; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<PopConfirmWin>()) { UIManager.Instance.OpenWindow<PopConfirmWin>(); } } //带两个按钮的确认框 可改变按钮文字 public static void ShowPopConfirm(string title, string info, string okName, string cancelName, Action<bool> func) { popConfirmTitle = title; popConfirmInfo = info; OnPopConfirmClickEvent = func; OnPopSingleConfirmEvent = null; IsSingleConfirm = false; OKName = okName; CancelName = cancelName; if (!UIManager.Instance.IsOpened<PopConfirmWin>()) { UIManager.Instance.OpenWindow<PopConfirmWin>(); } } // //可改变确认按钮文字的单按钮确认框,(命名与境界无关) // public static void ShowRealmPopConfirm(string title, string info, string okName, Action func = null) // { // popConfirmTitle = title; // popConfirmInfo = info; // OKName = okName; // OnPopConfirmClickEvent = null; // OnPopSingleConfirmEvent = func; // IsSingleConfirm = true; // if (!UIManager.Instance.IsOpened<RealmPopConfirmWin>()) // { // UIManager.Instance.OpenWindow<RealmPopConfirmWin>(); // } // } // public static void ShowRuneTowerPopConfirm(string title, string info, Action<bool> func) // { // popConfirmTitle = title; // popConfirmInfo = info; // OnPopConfirmClickEvent = func; // OnPopSingleConfirmEvent = null; // IsSingleConfirm = false; // UIManager.Instance.OpenWindow<RuneTowerConfirmWin>(); // } // public static void CancelAuctionPopConfirm(string title, string info, Action<bool> func) // { // popConfirmTitle = title; // popConfirmInfo = info; // OnPopConfirmClickEvent = func; // OnPopSingleConfirmEvent = null; // IsSingleConfirm = false; // UIManager.Instance.OpenWindow<CancelAuctionConfirmWin>(); // } public static string generalTitle; public static string generalContent; public static string toggleContent { get; private set; } public static bool toggleOpenState { get; private set; } public static Action<bool, bool> OnToggleConfirmEvent; public static Action<bool> OnToggleSingleConfirmEvent; public static Action<bool, bool> OnToggleConfirmEventEx; //带toggle的确认和取消 public static void ToggleConfirmCancel(string title, string content, string toggleTxt, Action<bool, bool> func, bool _toggle = false) { generalTitle = title; generalContent = content; toggleContent = toggleTxt; OnToggleSingleConfirmEvent = null; OnToggleConfirmEvent = func; toggleOpenState = _toggle; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<ToggleConfirmWin>()) { UIManager.Instance.OpenWindow<ToggleConfirmWin>(); } } //带toggle的只有确认按钮 public static void ToggleConfirmCancel(string title, string content, string toggleTxt, Action<bool> func, bool _toggle = false) { generalTitle = title; generalContent = content; toggleContent = toggleTxt; OnToggleConfirmEvent = null; OnToggleSingleConfirmEvent = func; toggleOpenState = _toggle; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<ToggleConfirmWin>()) { UIManager.Instance.OpenWindow<ToggleConfirmWin>(); } } //带toggle的确认和取消 右上角圆形关闭按钮也有回调函数 public static void ToggleConfirmCancelEx(string title, string content, string toggleTxt, Action<bool, bool> func, Action<bool, bool> func1, bool _toggle = false) { generalTitle = title; generalContent = content; toggleContent = toggleTxt; OnToggleSingleConfirmEvent = null; OnToggleConfirmEvent = func; OnToggleConfirmEventEx = func1; toggleOpenState = _toggle; OKName = null; CancelName = null; if (!UIManager.Instance.IsOpened<ToggleConfirmWin>()) { UIManager.Instance.OpenWindow<ToggleConfirmWin>(); } } //带toggle的确定和取消按钮,且可以改变按钮文字 public static void ToggleConfirmCancel(string title, string content, string toggleTxt, string okName, string cancelName, Action<bool, bool> func, bool _toggle = false) { generalTitle = title; generalContent = content; toggleContent = toggleTxt; OnToggleSingleConfirmEvent = null; OnToggleConfirmEvent = func; toggleOpenState = _toggle; OKName = okName; CancelName = cancelName; if (!UIManager.Instance.IsOpened<ToggleConfirmWin>()) { UIManager.Instance.OpenWindow<ToggleConfirmWin>(); } } //本次登陆不再提示, toggle的确认类型,方便外部调用 static Dictionary<int, bool> toggleCheckDict = new Dictionary<int, bool>(); public enum ToggleCheckType { Auction = 0, //拍卖行 } public static void ToggleConfirmCancelByType(int type, string fullTip, Action func) { if (toggleCheckDict.ContainsKey(type) && toggleCheckDict[type]) { func?.Invoke(); return; } ToggleConfirmCancel(Language.Get("Mail101"), fullTip, Language.Get("ConfirmCancel102"), (bool isOk, bool isToggle) => { if (isOk) { func?.Invoke(); toggleCheckDict[type] = isToggle; } }); } // public static string iconTitle; // public static string iconTopInfo; // public static string iconBottomInfo; // public static int iconItemId; // public static int iconNeedCnt; // public static int iconHaveCnt; // public static string iconToggleText { get; private set; } // public static Action<bool, bool> OnIconToggleConfirmAct; // public static void IconConfirmCancel(string title, string topInfo, int id, // int haveCnt, int needCnt, string bottomInfo, string toggleTxt, Action<bool, bool> func) // { // iconTitle = title; // iconTopInfo = topInfo; // iconBottomInfo = bottomInfo; // iconItemId = id; // iconHaveCnt = haveCnt; // iconNeedCnt = needCnt; // iconToggleText = toggleTxt; // OnIconToggleConfirmAct = func; // if (!UIManager.Instance.IsOpened<IconConfirmWin>()) // { // UIManager.Instance.OpenWindow<IconConfirmWin>(); // } // } // public static Action<bool> OnFairyLeagueGuideEvent; // public static void ShowFairyLeagueGuide(Action<bool> func = null) // { // OnFairyLeagueGuideEvent = func; // if (!UIManager.Instance.IsOpened<FairyLeagueGuideSelectWin>()) // { // UIManager.Instance.OpenWindow<FairyLeagueGuideSelectWin>(); // } // } // public static string generalItemTip; // public static int generalItemId; // public static int generalItemCnt; // public static Action ItemConfirmEvent; // public static void ShowItemConfirm(string info, int _itemId, int _itemCnt, Action func) // { // generalItemTip = info; // generalItemId = _itemId; // generalItemCnt = _itemCnt; // ItemConfirmEvent = func; // if (!UIManager.Instance.IsOpened<ItemConfirmWin>()) // { // UIManager.Instance.OpenWindow<ItemConfirmWin>(); // } // } // public static List<Item> getItems { get; private set; } // //多物品确认框 // public static void ShowItemsConfirm(List<Item> items, string tiltle, string info, string btnText, Action func, int moneyCnt = 0, int type = 0) // { // getItems = items; // generalTitle = tiltle; // generalItemTip = info; // ItemConfirmEvent = func; // OKName = btnText; // ItemConfirmEvent = func; // moneyType = type; // moneyNeedCount = moneyCnt; // if (!UIManager.Instance.IsOpened<ItemsConfirmWin>()) // { // UIManager.Instance.OpenWindow<ItemsConfirmWin>(); // } // } // public static string moneyTitle; // public static string moneyTopInfo; // public static string moneybtnOkText; // public static int moneyType; // public static int moneyNeedCount; // public static ulong moneyHaveCount; // public static string moneyToggleText { get; private set; } // public static bool moneytoggleOpen { get; private set; } // public static bool moneytoggleOpenState { get; private set; } // public static Action<bool, bool> OnMoneyToggleConfirmAct; // public static void MoneyIconToggleConfirm(string title, string topInfo,string okTxt, int type, // int needCnt, ulong haveCnt, Action<bool, bool> func, bool toggleOpen = false, string toggleTxt = "", bool toggleOpenState = false) // { // moneyTitle = title; // moneyTopInfo = topInfo; // moneybtnOkText = okTxt; // moneyType = type; // moneyNeedCount = needCnt; // moneyHaveCount = haveCnt; // moneyToggleText = toggleTxt; // moneytoggleOpen = toggleOpen; // moneytoggleOpenState = toggleOpenState; // OnMoneyToggleConfirmAct = func; // if (!UIManager.Instance.IsOpened<MoneyIconToggleConfirmWin>()) // { // UIManager.Instance.OpenWindow<MoneyIconToggleConfirmWin>(); // } // } } Main/System/Tip/ConfirmCancel.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 9ccdf806f5095f74cb57bf85b53ac31c MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Tip/PopConfirmWin.cs
New file @@ -0,0 +1,89 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 29, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class PopConfirmWin : UIBase { [SerializeField] Button popConfirmBtn; [SerializeField] Button popCancelBtn; [SerializeField] RichText popConfirmInfo; [SerializeField] Text popConfirmTitle; [SerializeField] Button closeBtn; protected override void InitComponent() { popConfirmBtn.onClick.AddListener(OnPopConfirmOkBtn); popCancelBtn.onClick.AddListener(OnPopConfirmCancelBtn); closeBtn.onClick.AddListener(OnPopConfirmCancelExBtn); } protected override void OnPreOpen() { popCancelBtn.SetActive(!ConfirmCancel.IsSingleConfirm); popConfirmTitle.text = ConfirmCancel.popConfirmTitle; popConfirmInfo.text = ConfirmCancel.popConfirmInfo; if (string.IsNullOrEmpty(ConfirmCancel.OKName)) (popConfirmBtn.FindComponent("Text", "Text") as Text).text = Language.Get("PopConfirmWin_OK"); else (popConfirmBtn.FindComponent("Text", "Text") as Text).text = ConfirmCancel.OKName; if (string.IsNullOrEmpty(ConfirmCancel.CancelName)) (popCancelBtn.FindComponent("Text", "Text") as Text).text = Language.Get("PopConfirmWin_Cancel"); else (popCancelBtn.FindComponent("Text", "Text") as Text).text = ConfirmCancel.CancelName; } protected override void OnOpen() { } protected override void OnPreClose() { } protected override void OnClose() { } void OnPopConfirmOkBtn() { CloseWindow(); if (ConfirmCancel.OnPopConfirmClickEvent != null) { ConfirmCancel.OnPopConfirmClickEvent(true); return; } if (ConfirmCancel.OnPopSingleConfirmEvent != null) { ConfirmCancel.OnPopSingleConfirmEvent(); } } void OnPopConfirmCancelBtn() { CloseWindow(); if (ConfirmCancel.OnPopConfirmClickEvent != null) { ConfirmCancel.OnPopConfirmClickEvent(false); } } void OnPopConfirmCancelExBtn() { CloseWindow(); if (ConfirmCancel.OnPopConfirmClickExEvent != null) { ConfirmCancel.OnPopConfirmClickExEvent(false); } } } Main/System/Tip/PopConfirmWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 8220ab0c429b88e4dbe2f03096f01add MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Tip/ScrollTip.cs
New file @@ -0,0 +1,115 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class ScrollTip { public static List<SystemHintData> m_Hints = new List<SystemHintData>(); public static List<ScrollTipDetail> m_ActiveTips = new List<ScrollTipDetail>(); private static GameObjectPoolManager.GameObjectPool pool = null; private static bool inited = false; public static float tipMoveTime = 0.2f; public static event Action OnTipReceiveEvent; public static void ShowTip(string tip, ArrayList infoList = null, int _order = 0) { int range = Math.Min(m_Hints.Count, 10); int findCnt = 0; for (int i = 1; i <= range; i++) { if (m_Hints[m_Hints.Count - i].message == tip) { findCnt++; if (findCnt == 3) { //列表内重复提示最多3次 return; } } } m_Hints.Add(new SystemHintData() { message = tip, extentionData = infoList == null ? infoList : new ArrayList(infoList), appendTime = DateTime.Now, order = _order }); //m_Hints.Sort(SysNotifyMgr.Instance.Compare); if (OnTipReceiveEvent != null) { OnTipReceiveEvent(); } if (!UIManager.Instance.IsOpened<ScrollTipWin>()) { UIManager.Instance.OpenWindow<ScrollTipWin>(); } } public static ScrollTipDetail Request() { ScrollTipDetail tip = null; if (pool == null) { var _prefab = ResManager.Instance.LoadAsset<GameObject>("Prefab", "Tip");// UILoader.LoadPrefab("Tip"); pool = GameObjectPoolManager.Instance.RequestPool(_prefab); } if (pool != null) { tip = pool.Request().AddMissingComponent<ScrollTipDetail>(); } return tip; } public static void Release(ScrollTipDetail tip, bool next = true) { if (m_ActiveTips.Contains(tip)) { tip.presentState = ScrollTipState.None; m_ActiveTips.Remove(tip); } if (tip.gameObject != null && pool != null) { pool.Release(tip.gameObject); } if (m_ActiveTips.Count > 0 && next) { m_ActiveTips[0].Play(ScrollTipState.Hide); } } public static void ReleaseAll() { for (int i = 0; i < m_ActiveTips.Count; i++) { Release(m_ActiveTips[i]); i--; } } public static void OnTipComplete() { if (OnTipReceiveEvent != null) OnTipReceiveEvent(); } public static void Close() { m_Hints.Clear(); } public enum ScrollTipState { None, Idle, Move, Hide } } Main/System/Tip/ScrollTip.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 3e70f36a739dcae499725882c3c41288 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Tip/ScrollTipDetail.cs
New file @@ -0,0 +1,90 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [RequireComponent(typeof(CanvasGroup))] public class ScrollTipDetail : MonoBehaviour { RichText text; CanvasGroup canvasGroup; [HideInInspector] public ScrollTip.ScrollTipState presentState = ScrollTip.ScrollTipState.Idle; private float m_Time = 0; private Vector3 pos = Vector3.zero; private float m_TipShowTime; private float m_TipHideTime; private float m_TipDistance; private void Awake() { canvasGroup = GetComponent<CanvasGroup>(); text = transform.Find("Text").GetComponent<RichText>(); } public void ShowTip(SystemHintData _hint) { text.SetExtenalData(_hint.extentionData); text.text = _hint.message; } public void SetTipConfig(float _showTime,float _hideTime,float _dis) { m_TipShowTime = _showTime; m_TipHideTime = _hideTime; m_TipDistance = _dis; } public void Play(ScrollTip.ScrollTipState state) { m_Time = 0; canvasGroup.alpha = 1; pos = transform.localPosition; presentState = state; } private void LateUpdate() { m_Time += Time.deltaTime; switch (presentState) { case ScrollTip.ScrollTipState.Idle: { m_Time = Mathf.Min(m_Time, m_TipShowTime); if (m_Time >= m_TipShowTime) { m_Time = 0; var index = ScrollTip.m_ActiveTips.IndexOf(this); if (index == 0) { presentState = ScrollTip.ScrollTipState.Hide; } else { presentState = ScrollTip.ScrollTipState.None; } } } break; case ScrollTip.ScrollTipState.Move: { m_Time = Mathf.Min(m_Time, ScrollTip.tipMoveTime); transform.localPosition = Vector3.Lerp(pos, pos.SetY(pos.y + m_TipDistance), m_Time / ScrollTip.tipMoveTime); if (m_Time >= ScrollTip.tipMoveTime) { m_Time = 0; presentState = ScrollTip.ScrollTipState.Idle; ScrollTip.OnTipComplete(); } } break; case ScrollTip.ScrollTipState.Hide: { m_Time = Mathf.Min(m_Time, m_TipHideTime); canvasGroup.alpha = 1 - m_Time / m_TipHideTime; if (m_Time >= m_TipHideTime) { m_Time = 0; presentState = ScrollTip.ScrollTipState.None; ScrollTip.Release(this); ScrollTip.OnTipComplete(); } } break; } } } Main/System/Tip/ScrollTipDetail.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 0555ed917b459d14bb49d0044bb02fea MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Tip/ScrollTipWin.cs
New file @@ -0,0 +1,113 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, October 07, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ScrollTipWin : UIBase { [SerializeField] RectTransform content; [SerializeField] RectTransform mask; [SerializeField, Header("显示条数")] int tipDisplayCnt = 3; [SerializeField, Header("每次滚动的距离")] float m_TipDistance = 50.0f; [SerializeField, Header("提示预制体高度")] float m_TipHeight = 40.0f; [SerializeField, Header("显示时间")] float m_TipShowTime = 1.0f; [SerializeField, Header("移动时间")] float m_TipMoveTime = 0.2f; [SerializeField, Header("隐藏时间")] float m_TipHideTime = 0.5f; protected override void InitComponent() { } protected override void OnClose() { } protected override void OnOpen() { } protected override void OnPreClose() { ScrollTip.OnTipReceiveEvent -= OnTipReceiveEvent; ScrollTip.ReleaseAll(); } protected override void OnPreOpen() { ScrollTip.tipMoveTime = m_TipMoveTime; ScrollTip.OnTipReceiveEvent += OnTipReceiveEvent; mask.sizeDelta = mask.sizeDelta.SetY(tipDisplayCnt * m_TipHeight + (tipDisplayCnt - 1) * (m_TipDistance - m_TipHeight) + 10); for (int i = 0; i < ScrollTip.m_Hints.Count; i++) { OnTipReceiveEvent(); } } private void OnTipReceiveEvent() { if (ScrollTip.m_Hints.Count > 0 && IsCanAdd()) { if (ScrollTip.m_ActiveTips.Count >= tipDisplayCnt) { ScrollTip.Release(ScrollTip.m_ActiveTips[0], false); } if (ScrollTip.m_ActiveTips.Count >= tipDisplayCnt) { ScrollTip.tipMoveTime = Time.deltaTime; } else { ScrollTip.tipMoveTime = m_TipMoveTime; } for (int i = 0; i < ScrollTip.m_ActiveTips.Count; i++) { ScrollTip.m_ActiveTips[i].Play(ScrollTip.ScrollTipState.Move); } ScrollTipDetail tipDetail = ScrollTip.Request(); if (tipDetail != null) { tipDetail.SetTipConfig(m_TipShowTime, m_TipHideTime, m_TipDistance); ScrollTip.m_ActiveTips.Add(tipDetail); var rt = tipDetail.transform; rt.SetParent(content.parent); rt.localScale = Vector3.one; rt.localPosition = content.localPosition; var _hint = ScrollTip.m_Hints[0]; ScrollTip.m_Hints.RemoveAt(0); tipDetail.ShowTip(_hint); tipDetail.Play(ScrollTip.ScrollTipState.Idle); } } } private bool IsCanAdd() { for (int i = 0; i < ScrollTip.m_ActiveTips.Count; i++) { if (ScrollTip.m_ActiveTips[i].presentState == ScrollTip.ScrollTipState.Move) { return false; } } return true; } } Main/System/Tip/ScrollTipWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 9d186d62731a33d4fb508206b5d33189 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Main/System/Tip/ToggleConfirmWin.cs
New file @@ -0,0 +1,99 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, December 02, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ToggleConfirmWin : UIBase { [SerializeField] Text m_Title; [SerializeField] Text m_Content; [SerializeField] Text m_ToggleTxt; [SerializeField] Toggle m_Toggle; [SerializeField] Button m_ConfirmBtn; [SerializeField] Button m_CancelBtn; [SerializeField] Button m_CloseBtn; protected override void InitComponent() { m_ConfirmBtn.onClick.AddListener(OnConfirm); m_CancelBtn.onClick.AddListener(OnCancel); m_CloseBtn.onClick.AddListener(OnCancelEx); } protected override void OnPreOpen() { m_Title.text = ConfirmCancel.generalTitle; m_Content.text = ConfirmCancel.generalContent; m_ToggleTxt.text = ConfirmCancel.toggleContent; m_Toggle.isOn = ConfirmCancel.toggleOpenState; m_CancelBtn.SetActive(ConfirmCancel.OnToggleConfirmEvent != null); if (string.IsNullOrEmpty(ConfirmCancel.OKName)) (m_ConfirmBtn.FindComponent("Text", "Text") as Text).text = Language.Get("PopConfirmWin_OK"); else (m_ConfirmBtn.FindComponent("Text", "Text") as Text).text = ConfirmCancel.OKName; if (string.IsNullOrEmpty(ConfirmCancel.CancelName)) (m_CancelBtn.FindComponent("Text", "Text") as Text).text = Language.Get("PopConfirmWin_Cancel"); else (m_CancelBtn.FindComponent("Text", "Text") as Text).text = ConfirmCancel.CancelName; } protected override void OnOpen() { } protected override void OnPreClose() { } protected override void OnClose() { } private void OnConfirm() { if (ConfirmCancel.OnToggleConfirmEvent != null) { ConfirmCancel.OnToggleConfirmEvent(true, m_Toggle.isOn); } else if (ConfirmCancel.OnToggleSingleConfirmEvent != null) { ConfirmCancel.OnToggleSingleConfirmEvent(m_Toggle.isOn); } CloseWindow(); } private void OnCancel() { if (ConfirmCancel.OnToggleConfirmEvent != null) { ConfirmCancel.OnToggleConfirmEvent(false, m_Toggle.isOn); } else if (ConfirmCancel.OnToggleSingleConfirmEvent != null) { ConfirmCancel.OnToggleSingleConfirmEvent(m_Toggle.isOn); } CloseWindow(); } private void OnCancelEx() { if (ConfirmCancel.OnToggleConfirmEventEx != null) { ConfirmCancel.OnToggleConfirmEventEx(false, m_Toggle.isOn); } CloseWindow(); } } Main/System/Tip/ToggleConfirmWin.cs.meta
New file @@ -0,0 +1,11 @@ fileFormatVersion: 2 guid: 30f4031c9ebe0fa41aa1ffd0a88437b2 MonoImporter: externalObjects: {} serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: