码迷,mamicode.com
首页 > 其他好文 > 详细

截取屏幕的一块区域并且声称图片

时间:2019-10-08 12:13:57      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:type   功能   unit   get   rect   form   network   end   unity   

在游戏开发过程中,我们经常遇到让我们分享截图的功能,这个时候首先要接入对应分享平台的SDK,然后在把截取的区域按照SDK相应的格式发送过去,达到相应的目的,接下来直接上代码,

// Call after WaitForEndOfFrame.
    private IEnumerator ShareToSocialNetworkShareOnly_Internal(RectTransform shareArea)
    {
        yield return new WaitForEndOfFrame();

        var reqInfo = new MSDKFriendReqInfo();
        reqInfo.Type = (int)FriendReqType.Friend_REQ_IMG;
        reqInfo.ImagePath = ProcessShareTexture(shareArea);
        //reqInfo.ThumbPath = appSmallIconPath;
        MSDKFriend.Share(reqInfo);
    }


private string ProcessShareTexture(RectTransform shareArea)
    {
        // Delete old image path.
        string shareImgPath = Path.Combine(Application.temporaryCachePath, "ShareImage.png");
        FileUtility.DeleteFileIfExist(shareImgPath);

        // Get the share screen size we need.
        Rect shareScreenRect = GetShareScreenSize(Camera.main, UIWindowManager.Instance.m_UICamera, shareArea);

        // Read screen pixels into share texture.
        Texture2D shareTexture = AcquireShareTexture((int)shareScreenRect.width, (int)shareScreenRect.height);
        shareTexture.ReadPixels(shareScreenRect, 0, 0, false);
        shareTexture.Apply();

        // Save share texture data.
        byte[] imageData = shareTexture.EncodeToPNG();
        File.WriteAllBytes(shareImgPath, imageData);
        Debug.Log("Save share image to: " + shareImgPath);

        return shareImgPath;
    }

先截图,然后把相应的截图在unity运行时保存在临时缓存区域,可以在运行游戏时预览效果

截取屏幕的一块区域并且声称图片

标签:type   功能   unit   get   rect   form   network   end   unity   

原文地址:https://www.cnblogs.com/qinshuaijun/p/11634539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!