문제

이 코드를 사용하여 모든 카메라의 RenderTexture에서 Texture2D를 만듭니다.

코드 :

    var w = 256;
    var h = 256;
    var  cameras:Camera[] = Camera.allCameras;

    var renderTexture:RenderTexture = RenderTexture.GetTemporary(Screen.width, Screen.height, 24);
    RenderTexture.active = renderTexture;  

    for (var camera:Camera in cameras)
    {
        if (camera.enabled)
        {
            var fov:float = camera.fov;
            camera.targetTexture = renderTexture;
            camera.Render();
            camera.targetTexture = null;
            camera.fov = fov;
        }
    }

    var result:Texture2D = new Texture2D(w, h, TextureFormat.ARGB32, false);
    result.ReadPixels(Rect(0.0f, 0.0f, Screen.width, Screen.height), 0, 0, false);
    result.Apply();


    Application.ExternalCall("exportImage",System.Convert.ToBase64String(result.EncodeToPNG()));
.

WebPlayer에서 바로 작동하지만이 Texture2D를 Base64로 변환하고 브라우저로 전송하려고 시도 할 때 결과는 회색 반투명 이미지입니다.

도움이 크게 감사 할 것입니다!고마워.

도움이 되었습니까?

해결책

ibplayer에 스크린 샷을 게시 할 수있었습니다.

using UnityEngine;
using System.Collections;

public class ScreenshotTest : MonoBehaviour {

    void Update () {
        if(Input.GetKeyDown(KeyCode.Space))
            StartCoroutine(Run());
    }


    IEnumerator Run() {
        yield return new WaitForEndOfFrame();

        Texture2D tex = new Texture2D(Screen.width, Screen.height);
        tex.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        tex.Apply();

        // to test the texture
        //  renderer.material.mainTexture = tex;

        // to save it as file, not available in webplayer
        //  System.IO.File.WriteAllBytes(Application.streamingAssetsPath+"/png.png", tex.EncodeToPNG());

        Application.ExternalCall("screenshot", System.Convert.ToBase64String(tex.EncodeToPNG()));
    }

}
.

및 브라우저 측면 :

function screenshot(base64) {
    console.log(base64);
    var img=document.createElement("img");
    img.alt="screenshot";
    img.src="data:image/png;base64,"+base64;
    document.body.appendChild(img);
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top