多语言展示
当前在线:1167今日阅读:97今日分享:45

Unity 入门教程 之 ScreenShot截图功能的实现二

Unity 入门教程 之 ScreenShot截图功能的实现一。在Unity中实现游戏截图,保留精彩瞬间,其中实现的方法很多种没在接下来的教程中依次介绍。本节介绍使用Texture2D 读取屏幕信息,并保存到文件路径的方法实现截图,具体如下
工具/原料

Unity

入门教程 之 ScreenShot截图功能的实现二
1

打开Unity,新建一个空工程,然后Unity界面如下图

2

在工程中新建一个脚本,脚本可以命名为“ScreenShotTest”,具体如下图

3

选中“ScreenShotTest”脚本,双击脚本或者右键“Open C# Project”,打开脚本,具体如下图

4

在打开的脚本上进行代码编辑,首先设置一个初始化截图保存路径,然后设置一个截图按钮,最后实现按钮调用事件实现截图功能,其中用Texture2D读取屏幕信息,然后把读到的信息转为字节写到文件里形成图片,具体代码及代码说明如下图

5

文本代码如下:using System.Collections;using UnityEngine;public class ScreenShotTest : MonoBehaviour{ //定义图片保存路径    private string mPath2;    void Start()    {        //初始化路径          mPath2 = Application.dataPath + '/ScreenShot/ScreenShot2.png';        }    //主方法,使用UGUI实现      void OnGUI()    {        if (GUILayout.Button('截图方式2', GUILayout.Height(30)))        {            StartCoroutine(CaptureByRect(new Rect(0, 0, 1024, 768), mPath2));        }    }    ///

     /// 根据一个Rect类型来截取指定范围的屏幕      /// 左下角为(0,0)      ///      /// M rect.      /// M file name.      private IEnumerator CaptureByRect(Rect mRect, string mFileName)    {        //等待渲染线程结束          yield return new WaitForEndOfFrame();        //初始化Texture2D          Texture2D mTexture = new Texture2D((int)mRect.width, (int)mRect.height, TextureFormat.RGB24, false);        //读取屏幕像素信息并存储为纹理数据          mTexture.ReadPixels(mRect, 0, 0);        //应用          mTexture.Apply();        //将图片信息编码为字节信息          byte[] bytes = mTexture.EncodeToPNG();        //保存          System.IO.File.WriteAllBytes(mFileName, bytes);        //如果需要可以返回截图          //return mTexture;      }}

6

脚本编译正确后,回到Unity界面,在场景中新建一个“GameObject”、“Cube”、“Sphere”,并适当调整布局,然后把脚本“ScreenShotTest”赋给“GameObject”,具体如下图

7

运行场景,点击按钮即可实现截图,也可以看见路径下的截图保留文件,具体如下图

8

到此,《Unity 入门教程 之 ScreenShot截图功能的实现二》讲解结束,谢谢

注意事项

若帮到您,还请帮忙投票以帮助到更多的人;若有疑问,请留言

推荐信息