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全解和建站方法--------------------------------------- 服務器建站

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章