Ejemplo n.º 1
0
    //触发剧情对话框具体实现
    private void TriggerStoryDlgImpl()
    {
        if (m_StoryId < 1 || m_StoryId > StoryDlgManager.Instance.StoryInfos.Count)
        {
            return;
        }
        //剧情对话框只触发一次
        if (IsTriggered == true)
        {
            return;
        }
        IsTriggered = true;
        string storyDlgName = "StoryDlgSmall";

        if (m_StoryDlgType == StoryDlgType.Big)
        {
            storyDlgName = "StoryDlgBig";
        }
        GameObject parentGO = GameObject.FindGameObjectWithTag("UI");

        if (parentGO != null)
        {
            Transform parentTransform = parentGO.transform;
            Transform t = parentTransform.Find(storyDlgName);
            if (t == null)
            {
                //第一次加载
                GameObject go = DashFire.ResourceSystem.GetSharedResource(string.Format("UI/{0}", storyDlgName)) as GameObject;
                if (go != null)
                {
                    GameObject dlgGO = NGUITools.AddChild(parentTransform.gameObject, go);
                    dlgGO.name = storyDlgName;
                    StoryDlgArgs arg = new StoryDlgArgs();
                    arg.m_StoryId      = m_StoryId;
                    arg.m_StoryDlgType = m_StoryDlgType;
                    arg.m_IntervalTime = m_IntervalTime;
                    dlgGO.BroadcastMessage("OnTriggerStory", arg);
                }
            }
            else if (NGUITools.GetActive(t.gameObject) == false)
            {
                NGUITools.SetActive(t.gameObject, true);
                StoryDlgArgs arg = new StoryDlgArgs();
                arg.m_StoryId      = m_StoryId;
                arg.m_StoryDlgType = m_StoryDlgType;
                arg.m_IntervalTime = m_IntervalTime;
                t.gameObject.BroadcastMessage("OnTriggerStory", arg);
            }
        }
    }
Ejemplo n.º 2
0
 public void OnTriggerStory(StoryDlgArgs arg)
 {
     if (m_IsStoryDlgActive == false)
     {
         m_StoryInfo = StoryDlgManager.Instance.GetStoryInfoByID(arg.m_StoryId);
         if (m_StoryInfo != null)
         {
             //Debug.LogError("===== Trigger A New Story !!! " + arg.m_IntervalTime);
             m_StoryId          = arg.m_StoryId;
             m_StoryDlgType     = arg.m_StoryDlgType;
             m_IntervalTime     = arg.m_IntervalTime;
             m_IsStoryDlgActive = true;
             m_StoryDlgGO       = this.gameObject;
             m_Count            = 0; //剧情对话计数器,触发一个新的剧情时重置为0
             m_StepNumber       = m_StoryInfo.StoryItems.Count;
             StoryDlgItem item = m_StoryInfo.StoryItems[m_Count];
             UpdateStoryDlg(m_StoryDlgGO.transform, item);
             NGUITools.SetActive(m_StoryDlgGO, true);
             if (m_StoryDlgType == StoryDlgType.Big)
             {
                 TouchManager.TouchEnable             = false;
                 JoyStickInputProvider.JoyStickEnable = false;
                 GameObject dfmUIRootGO = this.transform.parent.gameObject;
                 if (dfmUIRootGO != null)
                 {
                     dfmUIRootGO.GetComponent <DFMUiRoot>().SetUIVisible(false);
                 }
             }
             m_Count++;
             if (m_IntervalTime > 0.0f)
             {
                 Invoke("NextStoryItem", m_IntervalTime);
             }
         }
         else
         {
             Debug.LogError("Wrong Story id = " + arg.m_StoryId);
         }
     }
 }