示例#1
0
    static IEnumerator Co_Render()
    {
        CardPreviewPanel cpp             = UIManager.Instance.ShowUIForms <CardPreviewPanel>();
        Camera           camera          = cpp.CardPreviewCamera;
        float            ori_FieldOfView = camera.fieldOfView;

        camera.fieldOfView = 36f;
        foreach (KeyValuePair <int, CardBase> kv in UIManager.Instance.GetBaseUIForm <SelectBuildPanel>().AllCards)
        {
            cpp?.ShowPreviewCardPanel(kv.Value, false);
            cpp?.HideOtherThingsExceptShowCard();

            RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 0);

            camera.targetTexture = rt;
            yield return(new WaitForSeconds(0.1f));

            camera.Render();

            yield return(new WaitForSeconds(0.1f));

            RenderTexture.active = rt;
            Rect      rect       = new Rect(0, 0, Screen.width, Screen.height);
            Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGBA32, false);

            screenShot.ReadPixels(rect, 0, 0);
            screenShot.Apply();

            camera.targetTexture = null;
            RenderTexture.active = null;
            Destroy(rt);

            yield return(new WaitForSeconds(0.1f));

            byte[] bytes    = screenShot.EncodeToPNG();
            string filename = Application.dataPath + "/CardScreenShots/" + kv.Key + ".png";
            System.IO.File.WriteAllBytes(filename, bytes);
            yield return(new WaitForSeconds(0.1f));
        }

        camera.fieldOfView = ori_FieldOfView;
    }
示例#2
0
    void Update_Cards()
    {
        if (!IsInit)
        {
            return;
        }
        CardPreviewPanel previewPanel     = UIManager.Instance.GetBaseUIForm <CardPreviewPanel>();
        ConfirmPanel     confirmPanel     = UIManager.Instance.GetBaseUIForm <ConfirmPanel>();
        BuildRenamePanel buildRenamePanel = UIManager.Instance.GetBaseUIForm <BuildRenamePanel>();

        if (previewPanel != null && previewPanel.gameObject.activeInHierarchy)
        {
            return;
        }
        if (confirmPanel != null && confirmPanel.gameObject.activeInHierarchy)
        {
            return;
        }
        if (buildRenamePanel != null && buildRenamePanel.gameObject.activeInHierarchy)
        {
            return;
        }

        if (Input.GetMouseButtonDown(0))
        {
            Ray        ray = UIManager.Instance.UICamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycast;
            Physics.Raycast(ray, out raycast, 500f, GameManager.Instance.Layer_Cards);
            if (raycast.collider)
            {
                CardBase card = raycast.collider.gameObject.GetComponent <CardBase>();
                if (card)
                {
                    mouseDownPosition = Input.mousePosition;
                    mouseLeftDownCard = card;
                }
            }
            else
            {
                mouseRightDownCard = null;
                mouseLeftDownCard  = null;
            }
        }

        if (Input.GetMouseButtonDown(1))
        {
            Ray        ray = UIManager.Instance.UICamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycast;
            Physics.Raycast(ray, out raycast, 500f, GameManager.Instance.Layer_Cards);
            if (raycast.collider != null)
            {
                CardBase card = raycast.collider.gameObject.GetComponent <CardBase>();
                if (card)
                {
                    mouseDownPosition  = Input.mousePosition;
                    mouseRightDownCard = card;
                }
            }
            else
            {
                mouseRightDownCard = null;
                mouseLeftDownCard  = null;
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            Ray        ray = UIManager.Instance.UICamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycast;
            Physics.Raycast(ray, out raycast, 500f, GameManager.Instance.Layer_Cards);
            if (raycast.collider != null)
            {
                CardBase card = raycast.collider.gameObject.GetComponent <CardBase>();
                if (card)
                {
                    if ((Input.mousePosition - mouseDownPosition).magnitude < 50)
                    {
                        if (mouseLeftDownCard == card)
                        {
                            SelectCard(card, SelectCardMethods.CardClick);
                        }
                    }
                }
            }

            mouseLeftDownCard  = null;
            mouseRightDownCard = null;
        }

        if (Input.GetMouseButtonUp(1))
        {
            Ray        ray = UIManager.Instance.UICamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit raycast;
            Physics.Raycast(ray, out raycast, 500f, GameManager.Instance.Layer_Cards);
            if (raycast.collider != null)
            {
                CardBase card = raycast.collider.gameObject.GetComponent <CardBase>();
                if (Input.GetMouseButtonUp(1))
                {
                    if (card && mouseRightDownCard == card)
                    {
                        if (CurrentEditBuildButton == null)
                        {
                            OnCreateNewBuildButtonClick();
                            NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("Notice_SelectBuildManagerSelect_DeckCreatedPleaseSelectCards"), 0f, 1f);
                        }

                        UIManager.Instance.ShowUIForms <CardPreviewPanel>().ShowPreviewCardPanel(card, IsReadOnly);
                    }
                }
            }

            mouseLeftDownCard  = null;
            mouseRightDownCard = null;
        }
    }