예제 #1
0
    private void Start()
    {
        // Getting Shot Camera locally
        screenShotCamGO       = GameObject.FindGameObjectWithTag("ScreenShotCamera");
        screenShotcam         = screenShotCamGO.GetComponent <Camera>();
        screenShotcam.enabled = false;

        // Getting AR Camera locally
        arCameGO      = GameObject.FindGameObjectWithTag("MainCamera");
        arCam         = arCameGO.GetComponent <Camera>();
        arCam.enabled = true;

        // Getting UI Canvas
        uiCanvas = GameObject.FindGameObjectWithTag("UI").GetComponent <Canvas>();

        // Getting CaptureScreenShot locally
        captureScreenShot = GameObject.FindObjectOfType <CaptureScreenShot>();

        // Storing NativeShare locally
        nativeShare = GameObject.FindObjectOfType <NativeShare>();

        // Storing GeneralButtons locally
        generalButtons = GameObject.FindGameObjectWithTag("GeneralButtons");

        // Storing ScreenShotButtons locally
        screenShotButtons = GameObject.FindGameObjectWithTag("ScreenShotButtons");
        screenShotButtons.SetActive(false);

        // Storing Status Bar locally
        statusBarBkground = GameObject.FindGameObjectWithTag("StatusBarBkground");
        statusText        = GameObject.FindGameObjectWithTag("StatusText").GetComponent <Text>();
    }
    static IEnumerator Co_Render()
    {
        ClientLevelManager.Instance.CurrentClientLevel.gameObject.SetActive(false);
        ClientBattleManager.Instance.MechaContainerRoot.gameObject.SetActive(false);
        Camera     camera          = CameraManager.Instance.MainCamera;
        Quaternion oriRot          = camera.transform.rotation;
        Quaternion topDownViewRot  = Quaternion.Euler(90, 0, 0);
        float      ori_FieldOfView = camera.fieldOfView;

        camera.fieldOfView    = 6f;
        CameraFollow.NeedLerp = false;

        foreach (KeyValuePair <string, MechaComponentConfig> kv in ConfigManager.MechaComponentConfigDict)
        {
            string             filename     = Application.dataPath + "/../../Arts/MechaComponentScreenShots/" + kv.Key + ".png";
            MechaComponentInfo mci          = new MechaComponentInfo(kv.Value, Quality.Common);
            GridRect           boundingRect = mci.IInventoryItemContentInfo_OriginalOccupiedGridPositions.GetBoundingRectFromListGridPos();
            if (boundingRect.size.x != boundingRect.size.z)
            {
                camera.transform.rotation = topDownViewRot;
            }
            else
            {
                camera.transform.rotation = oriRot;
            }

            if (boundingRect.size.x == 1 && boundingRect.size.z == 1)
            {
                camera.fieldOfView = 6f;
            }
            else
            {
                camera.fieldOfView = 10f;
            }

            yield return(new WaitForSeconds(0.1f));

            MechaComponent mc = MechaComponent.BaseInitialize_Editor(mci, null);
            mc.transform.rotation = Quaternion.Euler(0, mc.ScreenShotAngle, 0);
            CaptureScreenShot.CaptureTransparentScreenShot(camera, 800, 800, filename);
            DestroyImmediate(mc.gameObject);
            yield return(new WaitForSeconds(0.1f));
        }

        camera.transform.rotation = oriRot;
        camera.fieldOfView        = ori_FieldOfView;
        CameraFollow.NeedLerp     = true;
        ClientLevelManager.Instance.CurrentClientLevel.gameObject.SetActive(true);
        ClientBattleManager.Instance.MechaContainerRoot.gameObject.SetActive(true);
    }
 /// <summary>
 /// Toggles the snap UI.
 /// </summary>
 /// <param name="go">The go.</param>
 public void ToggleSnapUI(GameObject go)
 {
     var snap = new CaptureScreenShot();
     Task task = new Task(snap.GetCapture());
 }