Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4009.00元
unity打包webgl 录屏并保存,和截屏
吴文博发起了话题2018-07-20
7
回复
3388
浏览

我要用打包webgl,然后再webgl中进行截屏和录屏,录下来的时评并保存。我用的AVPro Movie Capture,这些插件,打包exe能正常截屏或录视频都能正常保存,一旦打包webgl就不能实现这些功能了。老师能提供一些方法吗

所有回复
  • siki 2018-07-20

    这个老师也没有思路

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 大山 2020-01-14

    截屏和录制这个不难实现,主要是保存的本地的时候 会出现问题,

    File.WriteAllBytes(String, Byte[]) 方法和其他文件流保存的方法好像不能用

    • 大山 2020-01-14

      不知道webgl是什么问题导致的,有会的大神可以联系我下

      (0) 回复
    • 大山 2020-01-14

      private Texture2D CaptureScreen(Camera came, Rect r)
      {
      RenderTexture rt = new RenderTexture((int)r.width, (int)r.height, 0);
      came.targetTexture = rt;
      came.Render();
      RenderTexture.active = rt;
      Texture2D screenShot = new Texture2D((int)r.width, (int)r.height, TextureFormat.RGB24, false);
      screenShot.ReadPixels(r, 0, 0);
      screenShot.Apply();
      came.targetTexture = null;
      RenderTexture.active = null;
      GameObject.Destroy(rt);
      byte[] bytes = screenShot.EncodeToPNG();
      string strTime = string.Concat(DateTime.Now.Year.ToString(), "_", DateTime.Now.Month.ToString(), "_", DateTime.Now.Day.ToString(), "_",
      DateTime.Now.Hour.ToString(), "_", DateTime.Now.Minute.ToString(), "_", DateTime.Now.Second.ToString(), ".png");
      string filename = Application.streamingAssetsPath + "/" + strTime;

      Text1.text = "Start";
      System.IO.File.WriteAllBytes(filename, bytes);
      Text5.text = "end";
      return screenShot;
      }

      (0) 回复
    • 大山 2020-01-14

      private Texture2D CaptureScreen2(Camera came, Rect r)
      {
      RenderTexture rt = new RenderTexture((int)r.width, (int)r.height, 0);
      came.targetTexture = rt;
      came.Render();
      RenderTexture.active = rt;
      Texture2D screenShot = new Texture2D((int)r.width, (int)r.height, TextureFormat.RGB24, false);
      screenShot.ReadPixels(r, 0, 0);
      screenShot.Apply();
      came.targetTexture = null;
      RenderTexture.active = null;
      GameObject.Destroy(rt);
      byte[] bytes = screenShot.EncodeToPNG();

      string strTimePath = string.Concat(DateTime.Now.Year.ToString(), "_", DateTime.Now.Month.ToString(), "_", DateTime.Now.Day.ToString(), "_",
      DateTime.Now.Hour.ToString(), "_", DateTime.Now.Minute.ToString(), "_", DateTime.Now.Second.ToString(), ".png");
      string filename = Application.streamingAssetsPath + "/" + strTimePath;
      FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.ReadWrite);
      Text1.text = bytes.Length.ToString();
      fs.Write(bytes, 0, bytes.Length);
      fs.Flush();
      fs.Close();
      return screenShot;
      }

      (0) 回复
    • jiwei 2020-11-25

      回复 @ 大山: 请问您解决这个问题了吗?

      (0) 回复
    还有-1条回复,点击查看
    你还没有登录,请先登录注册
  • jiwei 2020-11-25

    请问老师这个问题解决了吗?

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!