156 lines
3.8 KiB
C#
156 lines
3.8 KiB
C#
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
using UnityEngine.UI;
|
|
using UnityEngine.EventSystems;
|
|
using System.Collections;
|
|
using Games.GlobeDefine;
|
|
using GCGame.Table;
|
|
using GCGame;
|
|
using System.Collections.Generic;
|
|
|
|
public class PlayHelpMessageRoot : UIControllerBase<PlayHelpMessageRoot>
|
|
{
|
|
#region start
|
|
|
|
public static event UnityAction CloseEvent = null;
|
|
|
|
public static void ShowHelpMessage(int messageID, bool SendServer = false)
|
|
{
|
|
UIManager.ShowUI(UIInfo.PlayHelpMessage, ShowMessageFinish, messageID);
|
|
if (SendServer)
|
|
CloseEvent = SendToServer;
|
|
else
|
|
CloseEvent = null;
|
|
}
|
|
|
|
public static void SendToServer()
|
|
{
|
|
//剧情结束后通知一下服务器
|
|
ReqResumeCopy req = new ReqResumeCopy();
|
|
req.nilparam = 1;
|
|
req.SendMsg();
|
|
}
|
|
|
|
public static void ShowMessageFinish(bool bSuccess, object param)
|
|
{
|
|
int messageID = (int)param;
|
|
|
|
PlayHelpMessageRoot.Instance().ShowMessageInner(messageID);
|
|
}
|
|
|
|
public UIContainerBase m_Container;
|
|
public Text Title;
|
|
public RawImage m_DesTexure;
|
|
public Text m_DesText;
|
|
public GameObject m_DescBack;
|
|
private float Duration = -1;
|
|
List<string> m_ShowList = new List<string>();
|
|
|
|
public void Awake()
|
|
{
|
|
SetInstance(this);
|
|
}
|
|
|
|
public void OnDestory()
|
|
{
|
|
SetInstance(null);
|
|
}
|
|
|
|
public void CloseWindow()
|
|
{
|
|
UIManager.CloseUI(UIInfo.PlayHelpMessage);
|
|
if(CloseEvent!=null)
|
|
{
|
|
CloseEvent.Invoke();
|
|
CloseEvent = null;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region
|
|
|
|
public void Update()
|
|
{
|
|
if (Duration <= -1)
|
|
return;
|
|
if(Duration-Time.realtimeSinceStartup<=0)
|
|
{
|
|
CloseWindow();
|
|
Duration = -1;
|
|
}
|
|
}
|
|
|
|
public void ShowMessageInner(int messageID)
|
|
{
|
|
var tabMessage = TableManager.GetPlayHelpMessageByID(messageID, 0);
|
|
if (tabMessage == null)
|
|
return;
|
|
Title.text = tabMessage.Title;
|
|
if(tabMessage.Duration>0)
|
|
{
|
|
Duration = Time.realtimeSinceStartup + tabMessage.Duration;
|
|
}
|
|
else
|
|
{
|
|
Duration = -1;
|
|
}
|
|
m_ShowList.Clear();
|
|
for (var i =0;i<tabMessage.getMessageCount();i++)
|
|
{
|
|
string desc = tabMessage.GetMessagebyIndex(i);
|
|
string raw = tabMessage.GetTexturebyIndex(i);
|
|
if (raw == "-1" || raw == "" || raw.Contains("ui")==false)
|
|
continue;
|
|
m_ShowList.Add(string.Format(desc + "[-]" + raw));
|
|
}
|
|
if (m_ShowList.Count <= 0)
|
|
{
|
|
CloseWindow();
|
|
return;
|
|
}
|
|
|
|
m_Index = 0;
|
|
ShowDesc();
|
|
//m_Container.InitContentItem(list);
|
|
}
|
|
|
|
public void ShowDesc()
|
|
{
|
|
if (m_ShowList.Count <= 0)
|
|
return;
|
|
if (m_ShowList[m_Index].Contains("[-]") == false)
|
|
return;
|
|
string[] lists = m_ShowList[m_Index].Split('-');
|
|
if (lists.Length < 2)
|
|
return;
|
|
m_DesText.text = lists[0].Remove(lists[0].Length - 1, 1);
|
|
bool isShow = (m_DesText.text != "" && m_DesText.text != "-1");
|
|
m_DesText.gameObject.SetActive(isShow);
|
|
m_DescBack.SetActive(isShow);
|
|
string imagePath = lists[1].Remove(0, 1);
|
|
string name = System.IO.Path.GetFileNameWithoutExtension(imagePath);
|
|
LoadAssetBundle.Instance.SetRawTexture(m_DesTexure, name, imagePath);
|
|
}
|
|
|
|
int m_Index = 0;
|
|
public void Next_Click()
|
|
{
|
|
m_Index++;
|
|
if (m_Index >= m_ShowList.Count)
|
|
m_Index = 0;
|
|
ShowDesc();
|
|
}
|
|
|
|
public void Last_Click()
|
|
{
|
|
m_Index--;
|
|
if (m_Index < 0)
|
|
m_Index = m_ShowList.Count - 1;
|
|
ShowDesc();
|
|
}
|
|
|
|
#endregion
|
|
}
|