unity3d 截图方法 ios和android均适用

  public  void SaveScreenshot(string fileName, string albumName = "MyScreenshots", string fileType = "jpg", Rect screenArea = default(Rect))
    {

        if (screenArea == default(Rect))
            screenArea = new Rect(0, 0, Screen.width, Screen.height);
        // screenArea = new Rect(Screen.width * 0.04f, Screen.height * 0.18f, Screen.width, Screen.height); //从某个点位置开始截图
        StartCoroutine(GrabScreenshot(fileName, albumName, fileType, screenArea));
    }

    IEnumerator GrabScreenshot(string fileName, string albumName, string fileType, Rect screenArea)
    {
        yield return new WaitForEndOfFrame();

        Texture2D texture = new Texture2D((int)screenArea.width, (int)screenArea.height, TextureFormat.RGB24, false);
        //Texture2D texture = new Texture2D((int)(0.92 * Screen.width), (int)(0.43 * Screen.height), TextureFormat.RGB24, false);//截图的大小


        texture.ReadPixels(screenArea, 0, 0);
        texture.Apply();
        byte[] bytes;
        string fileExt;

        if (fileType == "png")
        {
            bytes = texture.EncodeToPNG();
            fileExt = ".png";
        }
        else
        {
            bytes = texture.EncodeToJPG();
            fileExt = ".jpg";
        }

        string date = System.DateTime.Now.ToString("hh-mm-ss_dd-MM-yy");
        string screenshotFilename = fileName + "_" + date + fileExt;
        string path = Application.persistentDataPath + "/" + screenshotFilename;

        System.IO.File.WriteAllBytes(path, bytes);

}
注:  如果是在IOS打包的话 请在Xcode 打包时找到info.plis 文件  右键 Open as=> information property list  中添加  Privacy- Photo 字段开头的两个字段   避免截图时卡死或闪退

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebGL和Unity3D是两种不同的技术,用于在Web浏览器中创建交互式3D图形应用程序。它们之间存在一些重要的区别: 1. 技术基础:WebGL是一种Web标准,基于OpenGL ES图形库,用于在Web浏览器中呈现3D图形。它使用JavaScript API来直接访问GPU并处理图形渲染。而Unity3D是一个跨平台的游戏引擎,提供了一个完整的开发环境和工具集,用于创建2D和3D游戏以及其他交互式应用程序。 2. 开发难度:使用WebGL进行开发需要具备较强的编程和图形编程知识,因为你需要手动编写JavaScript代码来控制和渲染3D对象。而Unity3D提供了易于使用的可视化编辑器和脚本语言,使得开发过程更加简单和高效。 3. 功能和生态系统:Unity3D是一个成熟的游戏引擎,拥有强大的功能和广泛的生态系统,包括大量的插件、资源和社区支持。它提供了许多内置功能,如物理模拟、动画系统、碰撞检测等,以及跨平台发布的能力。WebGL则主要专注于在Web浏览器中呈现3D图形,功能相对较为有限。 4. 平台支持:WebGL可以在支持WebGL标准的现代Web浏览器上运行,无需安装额外的插件。而Unity3D可以发布到多个平台,包括Windows、Mac、Linux、iOSAndroid等,需要用户在设备上安装相应的运行时环境。 总之,WebGL适用于在Web浏览器中创建轻量级的交互式3D图形应用,而Unity3D适用于创建更复杂、功能丰富的跨平台游戏和应用程序。选择哪种技术取决于你的具体需求和技术水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值