コード例 #1
0
ファイル: UIBase.cs プロジェクト: superowner/MyUnityFrameWork
    public void SetGuideMode(GameObject go, int order = 1)
    {
        Canvas           canvas  = go.GetComponent <Canvas>();
        GraphicRaycaster graphic = go.GetComponent <GraphicRaycaster>();

        GuideChangeData status = new GuideChangeData();

        if (canvas == null)
        {
            canvas = go.AddComponent <Canvas>();

            status.isCreateCanvas = true;
        }

        if (graphic == null)
        {
            graphic = go.AddComponent <GraphicRaycaster>();

            status.isCreateGraphic = true;
        }

        status.OldOverrideSorting  = canvas.overrideSorting;
        status.OldSortingOrder     = canvas.sortingOrder;
        status.oldSortingLayerName = canvas.sortingLayerName;

        canvas.overrideSorting  = true;
        canvas.sortingOrder     = order;
        canvas.sortingLayerName = "Guide";

        m_GuideList.Add(go);
        m_CreateCanvasDict.Add(go, status);
    }
コード例 #2
0
    public void SetGuideMode(GameObject go, int order = 1)
    {
        Canvas           canvas  = go.GetComponent <Canvas>();
        GraphicRaycaster graphic = go.GetComponent <GraphicRaycaster>();

        GuideChangeData status = new GuideChangeData();

        if (canvas == null)
        {
            canvas = go.AddComponent <Canvas>();

            status.isCreateCanvas = true;
        }

        if (graphic == null)
        {
            graphic = go.AddComponent <GraphicRaycaster>();

            status.isCreateGraphic = true;
        }

        status.OldOverrideSorting  = canvas.overrideSorting;
        status.OldSortingOrder     = canvas.sortingOrder;
        status.oldSortingLayerName = canvas.sortingLayerName;

        //如果检测到目标对象
        bool oldActive = go.activeSelf;

        if (!oldActive)
        {
            go.SetActive(true);
        }

        canvas.overrideSorting  = true;
        canvas.sortingOrder     = order;
        canvas.sortingLayerName = "Guide";


        if (!oldActive)
        {
            go.SetActive(false);
        }

        if (!m_CreateCanvasDict.ContainsKey(go))
        {
            m_CreateCanvasDict.Add(go, status);
            m_GuideList.Add(go);
        }
        else
        {
            Debug.LogError("m_CreateCanvasDict " + go);
        }
    }
コード例 #3
0
ファイル: UIBase.cs プロジェクト: wshhsw2011/MyUnityFrameWork
    public void CancelGuideModel(GameObject go)
    {
        if (go == null)
        {
            Debug.LogError("go is null");
            return;
        }

        Canvas           canvas  = go.GetComponent <Canvas>();
        GraphicRaycaster graphic = go.GetComponent <GraphicRaycaster>();

        if (m_CreateCanvasDict.ContainsKey(go))
        {
            GuideChangeData status = m_CreateCanvasDict[go];

            if (graphic != null && status.isCreateGraphic)
            {
                DestroyImmediate(graphic);
            }

            if (canvas != null && status.isCreateCanvas)
            {
                DestroyImmediate(canvas);
            }
            else
            {
                if (canvas != null)
                {
                    canvas.overrideSorting  = status.OldOverrideSorting;
                    canvas.sortingOrder     = status.OldSortingOrder;
                    canvas.sortingLayerName = status.oldSortingLayerName;
                }
            }
        }
        else
        {
            Debug.LogError("m_CreateCanvasDict.ContainsKey(go) is error");
        }
    }
コード例 #4
0
ファイル: UIBase.cs プロジェクト: nie341/UnityLockStepDemo
    public void CancelGuideModel(GameObject go)
    {
        Canvas           canvas  = go.GetComponent <Canvas>();
        GraphicRaycaster graphic = go.GetComponent <GraphicRaycaster>();

        GuideChangeData status = m_CreateCanvasDict[go];

        if (graphic != null && status.isCreateGraphic)
        {
            Destroy(graphic);
        }

        if (canvas != null && status.isCreateCanvas)
        {
            Destroy(canvas);
        }
        else
        {
            canvas.overrideSorting  = status.OldOverrideSorting;
            canvas.sortingOrder     = status.OldSortingOrder;
            canvas.sortingLayerName = status.oldSortingLayerName;
        }
    }