Unity学习 — 简单的顺序循环播放和截图保存功能实现


一:功能简单介绍

1,在功能实现中,会遇到想顺序循环使用一个数组的东西,如果到了数组最后一个后却不知道怎么写代码让其再次从第一个开始
2,各种软件都会有截图功能,本篇简单记录写我自己曾遇到的难点,不喜勿喷!


二:简单的顺序循环数组内元素

这里以顺序循环天空盒为例子来写的代码

public List<Material>  skybox;    //背景天空盒数组
private int numCount = 0;  //用于统计每次输出的数,方便观察
public void ChangeBackGround()
    {
        numCount++;
        if (numCount > skybox.Count-1)
        {
            numCount = 0;
        }

       RenderSettings.skybox = skybox[numCount];
    }

三:截图

public void CutPhotos()
{
    ShuiYin.SetActive(true);
    for (int i = 0; i < button.Length; i++)
    {
        button[i].SetActive(false);
    }
    ###上面三行是在截图之前实现添加水印的功能,(可以忽略掉,有需要的可以使用),下面才是截图
    
    SaveFileDlg pth = new SaveFileDlg();
    pth.structSize   = Marshal.SizeOf(pth);
    pth.filter       = "Image Files(*.JPG;*.BMP;*.PNG)|*.JPG;*.BMP;*.PNG|All files (*.*)|*.*";
    pth.file         = new string(new char[256]);
    pth.maxFile      = pth.file.Length;
    pth.fileTitle    = new string(new char[64]);
    pth.maxFileTitle = pth.fileTitle.Length;
    pth.initialDir   = Application.dataPath.Replace('/', '\\'); // 默认路径
    pth.title        = "保存截图";
    pth.flags        = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;
    if (SaveFileDialogs.GetSaveFileName(pth))
    {
        string path = pth.file + ".JPG";
        ScreenCapture.CaptureScreenshot(path);
    }

    StartCoroutine(JiHuoUi()); 这个携程是添加水印功能实现(忽略掉)
}

四:功能实现结束

这是两个方法,分别挂在每个对应的按钮上实现的,根据自己需求去实现吧

本人初学,都是最基本的,善于交流,不断成长,如果你有好的实现方式多多分享噢
如果哪里不好,请大神多多指教


五:支持

服务器总有一天你会需要,详细的服务器教程尽在 Jacob 博客,点点下方链接,轻松马上学会!
阿里云Esc全解和建站方法--------------------------------------- 服务器建站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alxes_七局

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值