| | |
| | | using Snxxz.UI; |
| | | using System; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | public class ChatTip : MonoBehaviour |
| | | { |
| | | private static ChatTip _inst = null; |
| | | |
| | | public static ChatTip Inst |
| | | { |
| | | get { return _inst; } |
| | | } |
| | | |
| | | private void Awake() |
| | | { |
| | | _inst = this; |
| | | InitCom(); |
| | | } |
| | | |
| | | private GameObject chatPrefab; |
| | | private GameObject chatContent; |
| | | private GameObject chatMask; |
| | | private GameObject chatMaskRay; |
| | | private GameObject chatUpMaskRay; |
| | | private GameObject chatUp; |
| | | |
| | | private Button chatUpBtn; |
| | | private Image chatUpImg; |
| | | private bool isChatUp = false; |
| | | |
| | | [SerializeField] Vector2 m_ChatLowSize = Vector2.zero; |
| | | [SerializeField] Vector2 m_ChatHighSize = Vector2.zero; |
| | | |
| | | public bool IsChatUp |
| | | { |
| | | get |
| | | { |
| | | return isChatUp; |
| | | } |
| | | } |
| | | |
| | | public event Action OnChatUpEvent; |
| | | |
| | | private Image chatBg; |
| | | private ScrollerController chatUpCtrl; |
| | | private RichText destText; |
| | | private List<ChatData> chatUpDataList; |
| | | |
| | | private List<GameObject> chatItems = new List<GameObject>(ChatCtrl.CHAT_TIP_CNT); |
| | | |
| | | void InitCom() |
| | | { |
| | | chatBg = this.GetComponent<Image>("Image"); |
| | | |
| | | chatContent = transform.Find("ChatMask/ChatContent").gameObject; |
| | | chatPrefab = chatContent.transform.Find("ChatText").gameObject; |
| | | chatMask = transform.Find("ChatMask").gameObject; |
| | | chatMaskRay = chatMask.transform.Find("Ray").gameObject; |
| | | UIEventTrigger.Get(chatMaskRay).OnNoParamsClick = OnChatClick; |
| | | |
| | | chatUpBtn = this.GetComponent<Button>("Image/Btn_UP"); |
| | | chatUpImg = chatUpBtn.GetComponent<Image>(); |
| | | chatUpBtn.onClick.AddListener(OnChatUpBtn); |
| | | |
| | | chatUp = transform.Find("ChatUp").gameObject; |
| | | chatUpMaskRay = chatUp.transform.Find("Scroller/Ray").gameObject; |
| | | UIEventTrigger.Get(chatUpMaskRay).OnNoParamsClick = OnChatClick; |
| | | chatUpCtrl = chatUp.transform.Find("Controll").GetComponent<ScrollerController>(); |
| | | chatUpCtrl.lockType = EnhanceLockType.KeepVertical; |
| | | destText = chatUp.transform.Find("ChatCell/ChatText").GetComponent<RichText>(); |
| | | chatUpCtrl.OnRefreshCell += OnRefreshChatUpCell; |
| | | chatUpCtrl.OnGetDynamicSize += OnGetDynamicSize; |
| | | } |
| | | |
| | | private bool OnGetDynamicSize(ScrollerDataType type, int index, out float height) |
| | | { |
| | | destText.SetExtenalData(chatUpDataList[index].infoList); |
| | | destText.text = SetChatExtraInfo(chatUpDataList[index]) + chatUpDataList[index].content; |
| | | height = destText.preferredHeight; |
| | | return true; |
| | | } |
| | | |
| | | private void OnRefreshChatUpCell(ScrollerDataType type, CellView cell) |
| | | { |
| | | int index = cell.index; |
| | | if (chatUpDataList != null && index < chatUpDataList.Count) |
| | | { |
| | | RichText text = cell.transform.Find("ChatText").GetComponent<RichText>(); |
| | | ChatData data = chatUpDataList[index]; |
| | | if (chatUpDataList[index].infoList != null) |
| | | { |
| | | text.SetExtenalData(chatUpDataList[index].infoList); |
| | | } |
| | | text.text = SetChatExtraInfo(chatUpDataList[index]) + chatUpDataList[index].content; |
| | | text.OnClick = () => |
| | | { |
| | | OnChatDataClick(data); |
| | | }; |
| | | } |
| | | } |
| | | |
| | | private void OnChatUpBtn() |
| | | { |
| | | if (!isChatUp) |
| | | { |
| | | isChatUp = true; |
| | | chatBg.rectTransform.sizeDelta = m_ChatHighSize.Equals(Vector2.zero) ? new Vector2(470, 205) : m_ChatHighSize; |
| | | chatMask.SetActive(false); |
| | | chatUp.SetActive(true); |
| | | OnInitUpChat(); |
| | | chatUpImg.transform.localScale = chatUpImg.transform.localScale.SetY(-1); |
| | | chatUpCtrl.mScrollRect.verticalNormalizedPosition = 0; |
| | | } |
| | | else |
| | | { |
| | | isChatUp = false; |
| | | chatBg.rectTransform.sizeDelta = m_ChatLowSize.Equals(Vector2.zero) ? new Vector2(470, 106) : m_ChatLowSize; |
| | | chatUpImg.transform.localScale = chatUpImg.transform.localScale.SetY(1); |
| | | chatUp.SetActive(false); |
| | | chatMask.SetActive(true); |
| | | OnRefreshAllChat(); |
| | | } |
| | | |
| | | if (OnChatUpEvent != null) |
| | | { |
| | | OnChatUpEvent(); |
| | | } |
| | | } |
| | | |
| | | private void OnInitUpChat() |
| | | { |
| | | chatUpDataList = ChatCtrl.Inst.GetChatUpInfo(); |
| | | chatUpCtrl.Refresh(); |
| | | if (chatUpDataList != null && chatUpDataList.Count > 0) |
| | | { |
| | | for (int i = 0; i < chatUpDataList.Count; i++) |
| | | { |
| | | chatUpCtrl.AddCell(ScrollerDataType.Header, i); |
| | | } |
| | | } |
| | | chatUpCtrl.Restart(); |
| | | } |
| | | |
| | | private void OnChatClick() |
| | | { |
| | | if (WindowCenter.Instance.CheckOpen<ChatWin>()) |
| | | { |
| | | return; |
| | | } |
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.World; |
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | if (mapId == 31230) |
| | | { |
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; |
| | | } |
| | | WindowCenter.Instance.Open<ChatWin>(); |
| | | } |
| | | |
| | | private void OnEnable() |
| | | { |
| | | ChatCtrl.OnRefreshChat += OnRefreshChatTip; |
| | | MainInterfaceWin.Event_ChatCallback += OnChatTipClose; |
| | | OnRefreshAllChat(); |
| | | |
| | | //ChatCtrl.Inst.GetChatChannelShow(); |
| | | isChatUp = true; |
| | | OnChatUpBtn(); |
| | | } |
| | | |
| | | private void OnChatTipClose() |
| | | { |
| | | if (isChatUp) |
| | | { |
| | | OnChatUpBtn(); |
| | | } |
| | | } |
| | | |
| | | private void OnRefreshAllChat() |
| | | { |
| | | List<ChatData> list = ChatCtrl.Inst.GetChatInfo(); |
| | | for (int i = 0; i < list.Count; i++) |
| | | { |
| | | GameObject prefab = null; |
| | | if (i >= chatItems.Count) |
| | | { |
| | | prefab = Instantiate(chatPrefab) as GameObject; |
| | | prefab.transform.SetParent(chatContent.transform); |
| | | prefab.transform.localScale = Vector3.one; |
| | | Vector3 pos = prefab.transform.localPosition; |
| | | prefab.transform.localPosition = pos.SetZ(0); |
| | | prefab.SetActive(true); |
| | | chatItems.Add(prefab); |
| | | } |
| | | else |
| | | { |
| | | prefab = chatItems[i]; |
| | | prefab.SetActive(true); |
| | | } |
| | | SetChatItemData(prefab, list[i]); |
| | | } |
| | | for (int i = chatItems.Count - 1; i >= list.Count; i--) |
| | | { |
| | | if (chatItems[i].activeSelf) |
| | | { |
| | | chatItems[i].SetActive(false); |
| | | } |
| | | } |
| | | } |
| | | |
| | | void OnChatDataClick(ChatData data) |
| | | { |
| | | if (WindowCenter.Instance.CheckOpen<ChatWin>()) |
| | | { |
| | | return; |
| | | } |
| | | ChatCtrl.Inst.presentChatType = data.type; |
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); |
| | | if (mapId == 31230) |
| | | { |
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy; |
| | | } |
| | | WindowCenter.Instance.Open<ChatWin>(); |
| | | } |
| | | |
| | | void OnRefreshChatTip(ChatInfoType type) |
| | | { |
| | | if (isChatUp) |
| | | { |
| | | OnInitUpChat(); |
| | | } |
| | | else |
| | | { |
| | | OnRefreshAllChat(); |
| | | } |
| | | } |
| | | |
| | | void SetChatItemData(GameObject prefab, ChatData data) |
| | | { |
| | | RichText text = prefab.GetComponent<RichText>(); |
| | | if (data.infoList != null) |
| | | { |
| | | text.SetExtenalData(data.infoList); |
| | | } |
| | | text.text = StringUtility.Contact(SetChatExtraInfo(data), data.content); |
| | | text.OnClick = () => |
| | | { |
| | | OnChatDataClick(data); |
| | | }; |
| | | } |
| | | |
| | | string SetChatExtraInfo(ChatData data) |
| | | { |
| | | switch (data.type) |
| | | { |
| | | case ChatInfoType.World: |
| | | { |
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_World", (data as ChatUeseData).name); |
| | | } |
| | | case ChatInfoType.Area: |
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_Area", (data as ChatUeseData).name); |
| | | case ChatInfoType.Team: |
| | | { |
| | | string playerName = (data as ChatUeseData).name; |
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>", "ChatIcon_Team", playerName + (playerName != string.Empty ? ": " : string.Empty)); |
| | | } |
| | | case ChatInfoType.Friend: |
| | | break; |
| | | case ChatInfoType.Fairy: |
| | | { |
| | | string playerName = (data as ChatUeseData).name; |
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>", "ChatIcon_Fairy", playerName + (playerName != string.Empty ? ": " : string.Empty)); |
| | | } |
| | | case ChatInfoType.Trumpet: |
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_Trumpet", (data as ChatTrumpetData).name); |
| | | case ChatInfoType.Invite: |
| | | return string.Format("<Img chat={0}/> ", "ChatIcon_Invite"); |
| | | case ChatInfoType.System: |
| | | return string.Format("<Img chat={0}/> ", "ChatIcon_System"); |
| | | } |
| | | return string.Empty; |
| | | } |
| | | |
| | | private void OnDisable() |
| | | { |
| | | ChatCtrl.OnRefreshChat -= OnRefreshChatTip; |
| | | MainInterfaceWin.Event_ChatCallback -= OnChatTipClose; |
| | | } |
| | | |
| | | private void OnDestroy() |
| | | { |
| | | _inst = null; |
| | | } |
| | | |
| | | public bool IsOpen |
| | | { |
| | | get |
| | | { |
| | | return gameObject.activeInHierarchy; |
| | | } |
| | | } |
| | | } |
| | | using Snxxz.UI;
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | | public class ChatTip : MonoBehaviour
|
| | | {
|
| | | private static ChatTip _inst = null;
|
| | |
|
| | | public static ChatTip Inst
|
| | | {
|
| | | get { return _inst; }
|
| | | }
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | _inst = this;
|
| | | InitCom();
|
| | | }
|
| | |
|
| | | private GameObject chatPrefab;
|
| | | private GameObject chatContent;
|
| | | private GameObject chatMask;
|
| | | private GameObject chatMaskRay;
|
| | | private GameObject chatUpMaskRay;
|
| | | private GameObject chatUp;
|
| | |
|
| | | private Button chatUpBtn;
|
| | | private Image chatUpImg;
|
| | | private bool isChatUp = false;
|
| | |
|
| | | [SerializeField] Vector2 m_ChatLowSize = Vector2.zero;
|
| | | [SerializeField] Vector2 m_ChatHighSize = Vector2.zero;
|
| | |
|
| | | public bool IsChatUp
|
| | | {
|
| | | get
|
| | | {
|
| | | return isChatUp;
|
| | | }
|
| | | }
|
| | |
|
| | | public event Action OnChatUpEvent;
|
| | |
|
| | | private Image chatBg;
|
| | | private ScrollerController chatUpCtrl;
|
| | | private RichText destText;
|
| | | private List<ChatData> chatUpDataList;
|
| | |
|
| | | private List<GameObject> chatItems = new List<GameObject>(ChatCtrl.CHAT_TIP_CNT);
|
| | |
|
| | | void InitCom()
|
| | | {
|
| | | chatBg = this.GetComponent<Image>("Image");
|
| | |
|
| | | chatContent = transform.Find("ChatMask/ChatContent").gameObject;
|
| | | chatPrefab = chatContent.transform.Find("ChatText").gameObject;
|
| | | chatMask = transform.Find("ChatMask").gameObject;
|
| | | chatMaskRay = chatMask.transform.Find("Ray").gameObject;
|
| | | UIEventTrigger.Get(chatMaskRay).OnNoParamsClick = OnChatClick;
|
| | |
|
| | | chatUpBtn = this.GetComponent<Button>("Image/Btn_UP");
|
| | | chatUpImg = chatUpBtn.GetComponent<Image>();
|
| | | chatUpBtn.onClick.AddListener(OnChatUpBtn);
|
| | |
|
| | | chatUp = transform.Find("ChatUp").gameObject;
|
| | | chatUpMaskRay = chatUp.transform.Find("Scroller/Ray").gameObject;
|
| | | UIEventTrigger.Get(chatUpMaskRay).OnNoParamsClick = OnChatClick;
|
| | | chatUpCtrl = chatUp.transform.Find("Controll").GetComponent<ScrollerController>();
|
| | | chatUpCtrl.lockType = EnhanceLockType.KeepVertical;
|
| | | destText = chatUp.transform.Find("ChatCell/ChatText").GetComponent<RichText>();
|
| | | chatUpCtrl.OnRefreshCell += OnRefreshChatUpCell;
|
| | | chatUpCtrl.OnGetDynamicSize += OnGetDynamicSize;
|
| | | }
|
| | |
|
| | | private bool OnGetDynamicSize(ScrollerDataType type, int index, out float height)
|
| | | {
|
| | | destText.SetExtenalData(chatUpDataList[index].infoList);
|
| | | destText.text = SetChatExtraInfo(chatUpDataList[index]) + chatUpDataList[index].content;
|
| | | height = destText.preferredHeight;
|
| | | return true;
|
| | | }
|
| | |
|
| | | private void OnRefreshChatUpCell(ScrollerDataType type, CellView cell)
|
| | | {
|
| | | int index = cell.index;
|
| | | if (chatUpDataList != null && index < chatUpDataList.Count)
|
| | | {
|
| | | RichText text = cell.transform.Find("ChatText").GetComponent<RichText>();
|
| | | ChatData data = chatUpDataList[index];
|
| | | if (chatUpDataList[index].infoList != null)
|
| | | {
|
| | | text.SetExtenalData(chatUpDataList[index].infoList);
|
| | | }
|
| | | text.text = SetChatExtraInfo(chatUpDataList[index]) + chatUpDataList[index].content;
|
| | | text.OnClick = () =>
|
| | | {
|
| | | OnChatDataClick(data);
|
| | | };
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnChatUpBtn()
|
| | | {
|
| | | if (!isChatUp)
|
| | | {
|
| | | isChatUp = true;
|
| | | chatBg.rectTransform.sizeDelta = m_ChatHighSize.Equals(Vector2.zero) ? new Vector2(470, 205) : m_ChatHighSize;
|
| | | chatMask.SetActive(false);
|
| | | chatUp.SetActive(true);
|
| | | OnInitUpChat();
|
| | | chatUpImg.transform.localScale = chatUpImg.transform.localScale.SetY(-1);
|
| | | chatUpCtrl.mScrollRect.verticalNormalizedPosition = 0;
|
| | | }
|
| | | else
|
| | | {
|
| | | isChatUp = false;
|
| | | chatBg.rectTransform.sizeDelta = m_ChatLowSize.Equals(Vector2.zero) ? new Vector2(470, 106) : m_ChatLowSize;
|
| | | chatUpImg.transform.localScale = chatUpImg.transform.localScale.SetY(1);
|
| | | chatUp.SetActive(false);
|
| | | chatMask.SetActive(true);
|
| | | OnRefreshAllChat();
|
| | | }
|
| | |
|
| | | if (OnChatUpEvent != null)
|
| | | {
|
| | | OnChatUpEvent();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnInitUpChat()
|
| | | {
|
| | | chatUpDataList = ChatCtrl.Inst.GetChatUpInfo();
|
| | | chatUpCtrl.Refresh();
|
| | | if (chatUpDataList != null && chatUpDataList.Count > 0)
|
| | | {
|
| | | for (int i = 0; i < chatUpDataList.Count; i++)
|
| | | {
|
| | | chatUpCtrl.AddCell(ScrollerDataType.Header, i);
|
| | | }
|
| | | }
|
| | | chatUpCtrl.Restart();
|
| | | }
|
| | |
|
| | | private void OnChatClick()
|
| | | {
|
| | | if (WindowCenter.Instance.CheckOpen<ChatWin>())
|
| | | {
|
| | | return;
|
| | | }
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.World;
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
|
| | | }
|
| | | WindowCenter.Instance.Open<ChatWin>();
|
| | | }
|
| | |
|
| | | private void OnEnable()
|
| | | {
|
| | | ChatCtrl.OnRefreshChat += OnRefreshChatTip;
|
| | | MainInterfaceWin.Event_ChatCallback += OnChatTipClose;
|
| | | OnRefreshAllChat();
|
| | |
|
| | | //ChatCtrl.Inst.GetChatChannelShow();
|
| | | isChatUp = true;
|
| | | OnChatUpBtn();
|
| | | }
|
| | |
|
| | | private void OnChatTipClose()
|
| | | {
|
| | | if (isChatUp)
|
| | | {
|
| | | OnChatUpBtn();
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnRefreshAllChat()
|
| | | {
|
| | | List<ChatData> list = ChatCtrl.Inst.GetChatInfo();
|
| | | for (int i = 0; i < list.Count; i++)
|
| | | {
|
| | | GameObject prefab = null;
|
| | | if (i >= chatItems.Count)
|
| | | {
|
| | | prefab = Instantiate(chatPrefab) as GameObject;
|
| | | prefab.transform.SetParent(chatContent.transform);
|
| | | prefab.transform.localScale = Vector3.one;
|
| | | Vector3 pos = prefab.transform.localPosition;
|
| | | prefab.transform.localPosition = pos.SetZ(0);
|
| | | prefab.SetActive(true);
|
| | | chatItems.Add(prefab);
|
| | | }
|
| | | else
|
| | | {
|
| | | prefab = chatItems[i];
|
| | | prefab.SetActive(true);
|
| | | }
|
| | | SetChatItemData(prefab, list[i]);
|
| | | }
|
| | | for (int i = chatItems.Count - 1; i >= list.Count; i--)
|
| | | {
|
| | | if (chatItems[i].activeSelf)
|
| | | {
|
| | | chatItems[i].SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void OnChatDataClick(ChatData data)
|
| | | {
|
| | | if (WindowCenter.Instance.CheckOpen<ChatWin>())
|
| | | {
|
| | | return;
|
| | | }
|
| | | ChatCtrl.Inst.presentChatType = data.type;
|
| | | var mapId = ModelCenter.Instance.GetModel<DungeonModel>().GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID);
|
| | | if (mapId == 31230)
|
| | | {
|
| | | ChatCtrl.Inst.presentChatType = ChatInfoType.Fairy;
|
| | | }
|
| | | WindowCenter.Instance.Open<ChatWin>();
|
| | | }
|
| | |
|
| | | void OnRefreshChatTip(ChatInfoType type)
|
| | | {
|
| | | if (isChatUp)
|
| | | {
|
| | | OnInitUpChat();
|
| | | }
|
| | | else
|
| | | {
|
| | | OnRefreshAllChat();
|
| | | }
|
| | | }
|
| | |
|
| | | void SetChatItemData(GameObject prefab, ChatData data)
|
| | | {
|
| | | RichText text = prefab.GetComponent<RichText>();
|
| | | if (data.infoList != null)
|
| | | {
|
| | | text.SetExtenalData(data.infoList);
|
| | | }
|
| | | text.text = StringUtility.Contact(SetChatExtraInfo(data), data.content);
|
| | | text.OnClick = () =>
|
| | | {
|
| | | OnChatDataClick(data);
|
| | | };
|
| | | }
|
| | |
|
| | | string SetChatExtraInfo(ChatData data)
|
| | | {
|
| | | switch (data.type)
|
| | | {
|
| | | case ChatInfoType.World:
|
| | | {
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_World", (data as ChatUeseData).name);
|
| | | }
|
| | | case ChatInfoType.Area:
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_Area", (data as ChatUeseData).name);
|
| | | case ChatInfoType.Team:
|
| | | {
|
| | | string playerName = (data as ChatUeseData).name;
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>", "ChatIcon_Team", playerName + (playerName != string.Empty ? ": " : string.Empty));
|
| | | }
|
| | | case ChatInfoType.Friend:
|
| | | break;
|
| | | case ChatInfoType.Fairy:
|
| | | {
|
| | | string playerName = (data as ChatUeseData).name;
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>", "ChatIcon_Fairy", playerName + (playerName != string.Empty ? ": " : string.Empty));
|
| | | }
|
| | | case ChatInfoType.Trumpet:
|
| | | return string.Format("<Img chat={0}/> <color=#109d06>{1}</color>: ", "ChatIcon_Trumpet", (data as ChatTrumpetData).name);
|
| | | case ChatInfoType.Invite:
|
| | | return string.Format("<Img chat={0}/> ", "ChatIcon_Invite");
|
| | | case ChatInfoType.System:
|
| | | return string.Format("<Img chat={0}/> ", "ChatIcon_System");
|
| | | }
|
| | | return string.Empty;
|
| | | }
|
| | |
|
| | | private void OnDisable()
|
| | | {
|
| | | ChatCtrl.OnRefreshChat -= OnRefreshChatTip;
|
| | | MainInterfaceWin.Event_ChatCallback -= OnChatTipClose;
|
| | | }
|
| | |
|
| | | private void OnDestroy()
|
| | | {
|
| | | _inst = null;
|
| | | }
|
| | |
|
| | | public bool IsOpen
|
| | | {
|
| | | get
|
| | | {
|
| | | return gameObject.activeInHierarchy;
|
| | | }
|
| | | }
|
| | | }
|