Ejemplo n.º 1
0
    public GUIBaseDialogHandler Init()
    {
        try {
            GameObject obj = GameObjectUtils.LoadGameObject(gameObject.transform, PREFAB_PATH + prefabName);
            obj.name = prefabName;

            GUIBaseDialogHandler baseDialogHandler = obj.GetComponentInChildren <GUIBaseDialogHandler> ();

            Canvas canvas = obj.GetComponent <Canvas> ();
            canvas.overrideSorting = true;
            canvas.renderMode      = RenderMode.ScreenSpaceCamera;
            canvas.worldCamera     = GUIManager.Instance.uiCamera;

            baseDialogHandler.InstanceId = GameUtils.GenerateID();
            baseDialogHandler.ShowStatus = DialogStatus.Ok;
            baseDialogHandler.DialogName = dialogName;

            baseDialogHandler.OnInit();

            return(baseDialogHandler);
        } catch (Exception ex) {
            Debug.LogError("Error:" + ex.Message);
        }
        return(null);
    }
Ejemplo n.º 2
0
    public GUIBaseDialogHandler GetTopDialog()
    {
        if (!useBlackBorder)
        {
            return(null);
        }

        GUIBaseDialogHandler rs = null;

        for (int i = 0; i < showedDialogList.Count; i++)
        {
            if (rs == null)
            {
                rs = showedDialogList [i];
            }
            else
            {
                if (showedDialogList [i].canvas.sortingOrder > rs.canvas.sortingOrder)
                {
                    rs = showedDialogList [i];
                }
            }
        }
        return(rs);
    }
Ejemplo n.º 3
0
    public void OnClickBlackBorder()
    {
        if (showedDialogList.Count <= 0)
        {
            return;
        }
        GUIBaseDialogHandler dl = showedDialogList [showedDialogList.Count - 1];

        if (dl.CloseOnClickBlackBorder)
        {
            dl.HideSelf();
        }
    }
Ejemplo n.º 4
0
    public void DestroyDialog(GUIBaseDialogHandler baseDialogHandler)
    {
        if (baseDialogHandler == null)
        {
            return;
        }

        showedDialogList.Remove(baseDialogHandler);
        GUIManager.Instance.RemoveShowedDialog(baseDialogHandler);

        Destroy(baseDialogHandler.gameObject);
        GUIManager.Instance.CheckBlackBorder();
    }
Ejemplo n.º 5
0
    public void UpdateData(string instanceId, object param)
    {
        GUIBaseDialogHandler baseDialogHandler = null;

        for (int i = 0; i < showedDialogList.Count; i++)
        {
            if (string.Compare(instanceId, showedDialogList [i].InstanceId) == 0)
            {
                baseDialogHandler = showedDialogList [i];
            }
        }
        if (baseDialogHandler == null)
        {
            Debug.Log("Can not find dialog " + dialogName + " with id: " + instanceId);
            return;
        }

        baseDialogHandler.OnUpdateData(param);
    }
Ejemplo n.º 6
0
    public void Hide(object parameter, string instanseID, bool forceImediate = false)
    {
        GUIBaseDialogHandler baseDialogHandler = null;

        for (int i = 0; i < showedDialogList.Count; i++)
        {
            if (string.Compare(instanseID, showedDialogList [i].InstanceId) == 0)
            {
                baseDialogHandler = showedDialogList [i];
            }
        }
        if (baseDialogHandler == null)
        {
            Debug.Log("Can not find dialog " + dialogName + " with id: " + instanseID);
            return;
        }

        Hide(parameter, baseDialogHandler, forceImediate);
    }
Ejemplo n.º 7
0
 void Hide(object parameter, GUIBaseDialogHandler baseDialogHandler, bool forceImediate = false)
 {
     if (baseDialogHandler.ShowStatus == DialogStatus.Showing)
     {
         baseDialogHandler.OnEndShow();
     }
     if (forceImediate)
     {
         GUIManager.InvokeEvent(dialogName, DialogEvent.BeginHide);
         baseDialogHandler.OnBeginHide(parameter);
         baseDialogHandler.ShowStatus = DialogStatus.Hiding;
         baseDialogHandler.OnEndHide();
         GUIManager.InvokeEvent(dialogName, DialogEvent.Hidden);
         DestroyDialog(baseDialogHandler);
     }
     else
     {
         GUIManager.InvokeEvent(dialogName, DialogEvent.BeginHide);
         baseDialogHandler.OnBeginHide(parameter);
         baseDialogHandler.ShowStatus = DialogStatus.Hiding;
         baseDialogHandler.PlayHide(this);
     }
 }
Ejemplo n.º 8
0
    public void TryShow(object parameter, bool closeOnClickBlackBorder = false)
    {
        if (dialogType == DialogType.Single)
        {
            if (showedDialogList.Count != 0)
            {
                if (showedDialogList[0].ShowStatus == DialogStatus.Ok || showedDialogList[0].ShowStatus == DialogStatus.Showed || showedDialogList [0].ShowStatus == DialogStatus.Showing)
                {
                    showedDialogList [0].OnUpdateData(parameter);
                    return;
                }
                else if (showedDialogList [0].ShowStatus == DialogStatus.Hiding)
                {
                    showedDialogList [0].OnEndHide();

                    Destroy(showedDialogList [0].gameObject);

                    GUIManager.Instance.RemoveShowedDialog(showedDialogList [0]);
                    showedDialogList.RemoveAt(0);
                }
            }
        }

        GUIBaseDialogHandler baseDialogHandler = Init();

        if (baseDialogHandler == null)
        {
            return;
        }
        baseDialogHandler.CloseOnClickBlackBorder = closeOnClickBlackBorder;

        showedDialogList.Add(baseDialogHandler);
        GUIManager.Instance.AddShowedDialog(baseDialogHandler);

        StartCoroutine(DoShow(baseDialogHandler, parameter));
    }
Ejemplo n.º 9
0
    private IEnumerator DoShow(GUIBaseDialogHandler baseDialogHandler, object parameter)
    {
        GUIManager.InvokeEvent(dialogName, DialogEvent.BeginShow);
        yield return(new WaitForSeconds(showDelay));

        if (isSetupLocation && baseDialogHandler.guiControlLocation != null)
        {
            baseDialogHandler.guiControlLocation.transform.localPosition = position;
        }

        baseDialogHandler.OnBeginShow(parameter);
        baseDialogHandler.ShowStatus = DialogStatus.Showing;


        int newLayer = GUIManager.Instance.NewTopLayer();

        baseDialogHandler.SetLayer(newLayer);
        if (useBlackBorder)
        {
            GUIManager.Instance.SetBlackBorder(baseDialogHandler.GetLayer());
        }

        Vector3 temp = baseDialogHandler.guiControlLocation.transform.localPosition;

        baseDialogHandler.guiControlLocation.transform.localPosition = new Vector3(temp.x, temp.y, temp.z + newLayer * GUIManager.Instance.DeltaZ);

        if (rectCheckers != null && rectCheckers.Count > 0)
        {
            for (int i = 0; i < rectCheckers.Count; i++)
            {
                baseDialogHandler.AddRectChecker(rectCheckers[i]);
            }
        }

        baseDialogHandler.PlayShow();
    }
Ejemplo n.º 10
0
 public void RemoveShowedDialog(GUIBaseDialogHandler dl)
 {
     showedDialogList.Remove(dl);
 }
Ejemplo n.º 11
0
 public void AddShowedDialog(GUIBaseDialogHandler dl)
 {
     showedDialogList.Add(dl);
 }
    public virtual GameObject OnInit()
    {
        try
        {
            //Debug.LogError("Init Dialog" + name);
			Debug.Log("Load dialog " + dialogPrefab);
            GameObject obj = Util.LoadPreafab(GUI_PATH_PREFAB + dialogPrefab, gameObject);
            obj.name = dialogPrefab;
            if (obj.transform.Find(locationName) != null)
            {
                guiControlLocation = obj.transform.Find(locationName).gameObject;
				guiControlLocation.transform.localPosition = new Vector3(1000,0,0);
            }
            UIPanel panel = obj.GetComponent<UIPanel>();
            if (panel != null)
                panel.depth = layer;
   
            UIPanel[] panels = obj.GetComponentsInChildren<UIPanel>();
            for (int i = 0; i < panels.Length; i++)
            {
                panels[i].depth = layer;
            }
            uiBaseDialogHandler = gameObject.GetComponentInChildren<GUIBaseDialogHandler>();
            return obj;
        }
        catch (Exception ex)
        {
            Debug.LogError("Error:" + ex.Message);
        }
        return null;
    }