1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.UI;
  4. using System.IO;
  5.  
  6. public class TakeScreenshot : MonoBehaviour
  7. {
  8. [Header("Managers")]
  9. public GameObject SM;
  10.  
  11. private bool isProcessing = false;
  12. public float startX;
  13. public float startY;
  14. public int valueX;
  15. public int valueY;
  16.  
  17. public void shareScreenshot()
  18. {
  19.  
  20. if (!isProcessing)
  21. StartCoroutine(captureScreenshot());
  22. }
  23.  
  24. public IEnumerator captureScreenshot()
  25. {
  26. isProcessing = true;
  27.  
  28. //Wait for 1 second while we close the shop panel
  29. //ui change do here
  30. yield return new WaitForSeconds();
  31.  
  32. yield return new WaitForEndOfFrame();
  33.  
  34. Texture2D screenTexture = new Texture2D(Screen.width, Screen.height);
  35.  
  36. screenTexture.ReadPixels(new Rect(, , Screen.width, Screen.height), , );
  37.  
  38. // apply
  39. screenTexture.Apply();
  40.  
  41. //------------------------------------------------------- PHOTO
  42.  
  43. byte[] dataToSave = screenTexture.EncodeToPNG();
  44.  
  45. string destination = Path.Combine(Application.persistentDataPath, System.DateTime.Now.ToString("yyyy-MM-dd-HHmmss") + ".png");
  46.  
  47. File.WriteAllBytes(destination, dataToSave);
  48.  
  49. if (!Application.isEditor)
  50. {
  51. // block to open the file and share it ------------START
  52. AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
  53. AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent");
  54. intentObject.Call<AndroidJavaObject>("setAction", intentClass.GetStatic<string>("ACTION_SEND"));
  55. AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
  56. AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", "file://" + destination);
  57. intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_STREAM"), uriObject);
  58. intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_TEXT"), "");
  59. intentObject.Call<AndroidJavaObject>("putExtra", intentClass.GetStatic<string>("EXTRA_SUBJECT"), "");
  60. intentObject.Call<AndroidJavaObject>("setType", "image/jpeg");
  61. AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
  62. AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
  63.  
  64. // option one WITHOUT chooser:
  65. currentActivity.Call("startActivity", intentObject);
  66.  
  67. // block to open the file and share it ------------END
  68.  
  69. }
  70. isProcessing = false;
  71.  
  72. }
  73. }

unity share current game screen的更多相关文章

  1. Capture Current Soft Screen

    Bitmap memoryImage; private void CaptureScreen() { Graphics myGraphics = this.CreateGraphics(); Size ...

  2. Unity Flow distort of screen

    Shader "ScreenWater" {Properties { _MainTex ("Base (RGB)", 2D) = "white&quo ...

  3. 在Unity中实现屏幕空间反射Screen Space Reflection(4)

    第四部分讲一下如何在2D屏幕空间步进光线. http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html 中的代码感 ...

  4. screen space shadowmap unity

    unity用到了screen space shadow map 1.camera 在light pos 生成depth1 2.screen space depth2 3.根据depth1 depth2 ...

  5. BEST FREE UNITY ASSETS – OVER 200 CURATED QUALITY ASSETS

    http://www.procedural-worlds.com/blog/best-free-unity-assets-categorised-mega-list/ BEST FREE UNITY ...

  6. ubuntu Screen 的比较详细的命令

    Linux Screen Commands For Developers 转自:http://fosshelp.blogspot.com/2014/02/linux-screen-commands-f ...

  7. Overview over available Turtle and Screen methods

    24.5.2.1. Turtle methods Turtle motion Move and draw forward() | fd() backward() | bk() | back() rig ...

  8. 实操UNITY3D接入91SDK安卓版

    原地址:http://bbs.18183.com/thread-149758-1-1.html 本文内容为创建UNITY3D接入91SDK的DEMO的具体操作过程.本人水平有限,UNITY3D与And ...

  9. Unity-WIKI 之 AnimationToPNG

    组件功能 把3D角色的动画录制成PNG一帧一帧输出,这是一个件多么美好的事! 可能遇到问题 有可能当你新建完脚本时会出现下面的错误: `System.IO.File' does not contain ...

随机推荐

  1. jQuery 实现改变图片指定区域的颜色

    javascript本身无法改变图片的颜色,不过我们可以通过一些技巧来实现一样的效果. 1.首先我们要知道图片哪些区域需要改变颜色,这里我们可以用执点地图的方法来弄 例1: <img src=& ...

  2. UVa 753 - A Plug for UNIX(最大流)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. Codeforces 962D - Merge Equals

    链接: http://codeforces.com/problemset/problem/962/D 题意: 给出一个整数序列.选择其中最小且出现两次(或以上)的数,把最左边的两个从序列中移除,然后把 ...

  4. Codeforces 955C - Sad powers(数论 + 二分)

    链接: http://codeforces.com/problemset/problem/955/C 题意: Q次询问(1≤Q≤1e5),每次询问给出两个整数L, R(1≤L≤R≤1e18),求所有符 ...

  5. luogu P4275 萃香的请柬

    嘟嘟嘟 打表不难发现,序列的长度以及序列中1的个数都是斐波那契数列.因为第 i 秒1的个数由 i - 1的1和 i - 2的0变换而来,那么f[i] = f[i - 1] + f[i - 2].序列的 ...

  6. 理解HTML DOM

    DOM(Document Object Model)全称文档对象模型.DOM其实是JavaScript操作网页的一套API接口,定义了访问和操作HTML文档的标准.定义了所有HTML元素的对象和属性, ...

  7. 谈谈Ajax(一)

    解决办法是:比如我是使用SSM框架(Spring+SpringMVC+MyBatis/MyBatis Plus)开发web应用,通常Controller的参数列表与ajax的data保持一致即可,少一 ...

  8. 在servlet中使用Spring注入

    修改servlet 的 init 方法,添加以下代码: SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, ...

  9. C51 单片机的中断号以及中断向量

    1.外部中断0. 1:分别由引脚/INT0./INT1的电平信号引起. 2.定时/计数器0.1:分别由T0. T1的溢出引起. 3.串行口发送.接收:发送完一个字节或接收到一个字节引起. 上述共5个中 ...

  10. Oracle作业4-函数

    一.在数据库中的emp和dept表中做如下查询: 1.列出所有分析师(ANALYST)的姓名.编号和部门 SELECT ENAME,EMPNO,E.DEPTNO,DNAME FROM EMP E,DE ...