using System; using System.Collections; using System.Collections.Generic; using System.IO; using ET; using FairyGUI; using UnityEngine; namespace GFGGame { class ShareDataManager : SingletonBase { //当前分享 public byte[] imageBytes; public string outputImagePath; // 输出图片的路径 public GGroup group; public void ShareImage(string imageUrl) { // 使用ShareSDK或其他分享插件来分享图片URL // 这里需要根据具体插件的API来实现分享功能 } //isJump:是否跳转 //isCapture:是否截图 public void CaptureCameraToImage(bool isJump = true,bool isCapture = true) { Timers.inst.StartCoroutine(CaptureCameraImage(isJump,isCapture)); } private IEnumerator CaptureCameraImage(bool isJump = true, bool isCapture = true) { if (!isJump) { group.visible = false; } yield return new WaitForEndOfFrame(); SetImageTargetPath(); if (isCapture) { Rect rect = new Rect(0, 0, UnityEngine.Screen.width, UnityEngine.Screen.height); Texture2D tex = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.ARGB32, false);//新建一个Texture2D对象 tex.ReadPixels(rect, 0, 0);//读取像素,屏幕左下角为0点 tex.Apply();//保存像素信息 // 将Texture2D保存为图片 imageBytes = tex.EncodeToPNG(); } // 保存到磁盘 File.WriteAllBytes(outputImagePath, imageBytes); Debug.Log("Camera capture saved to " + outputImagePath); if (!isJump) { group.visible = true; } if (isJump) { //ViewManager.Show(); } } public Texture2D ConvertBytesToTexture(byte[] imageBytes) { // 创建一个新的Texture2D对象 Texture2D texture = new Texture2D(UnityEngine.Screen.width, UnityEngine.Screen.height); // 宽度和高度需要根据图片实际尺寸来设置 texture.LoadImage(imageBytes); // 加载图片数据 // 应用纹理设置 texture.Apply(); return texture; } private void SetImageTargetPath() { outputImagePath = Application.persistentDataPath + "/share.png"; } } }