반응형
Notice
Recent Posts
Recent Comments
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

Do Something IT

[Unity] Multiple Camera One RenderTexture Capture (여러대 카메라 한장으로 캡쳐하기) 본문

Unity3D

[Unity] Multiple Camera One RenderTexture Capture (여러대 카메라 한장으로 캡쳐하기)

아낙시만더 2018. 3. 8. 11:08
반응형
여러대 카메라의 Depth가 셋팅이 미리 되어야 한다.
 void Capture(Camera[] camera_)
        {
            RenderTexture renderTexture = RenderTexture.GetTemporary((int)csMyNGUIResolutionController.Instance.Width,
                (int)csMyNGUIResolutionController.Instance.Height, 16);
            RenderTexture.active = renderTexture;

            foreach (Camera camera in camera_)
            {
                if (camera.enabled)
                {
                    //float fov = camera.fov;
                    camera.targetTexture = renderTexture;
                    camera.Render();
                    camera.targetTexture = null;
                    //camera.fov = fov;
                }
            }

            _snapshotTexture = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.RGB24, true);
            _snapshotTexture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0, true);
            _snapshotTexture.Apply();

            _snapshotUITexture.mainTexture = _snapshotTexture;
            _snapshotUITexture.width = _snapshotTexture.width;
            _snapshotUITexture.height = _snapshotTexture.height;

            RenderTexture.active = null;
            RenderTexture.ReleaseTemporary(renderTexture);

            SetAfterSnapshot();

            _originTimeScale = Time.timeScale;
            Time.timeScale = 0f;

            _shotEffectTweener.ResetToBeginning();
            _shotEffectTweener.PlayForward();
        }
반응형
Comments