unity插件推荐

在Unity里面如何调用系统窗口

2018-05-23  本文已影响599人  CodeHunter

最近在研究如何在Unity中调用系统窗口获取文件路径,或者保存文件路径。

百度了许多,发现大部分都是靠windows.form.dll调用DLL的方法,但封装的不好,存在虽然能调用,但窗体不能永远置顶的问题,点其他界面,窗口会被最小化。所以我就转向国外的论坛找,最终终于找到一个Github上提供的C#方案,封装的特别好,功能也特别齐全,不仅支持Win,还支持mac与webgl所以特别方便。

下面放出Git地址

https://github.com/gkngkc/UnityStandaloneFileBrowser

当你下载完成后,把文件夹导入你的工程。

如果你是 Windows记得把Unity与DLL设置如下

然后他所有封装的方法都在SFB这个命名空间下。

然后调用StandaloneFileBrowser这个类下面一共有这几个方法,分别是调用打开文件窗口、打开文件夹窗口,打开保存文件窗口。

带有Async都需要给方法传递一个回调的函数,在函数执行完后进行回调。

下面我就以OpenFilePanelAsync这个方法举例

String[] OpenFilePanelAsync(string 窗口标题,string 默认打开文件夹路径,指定拓展名,bool 是否允许多选,action<string[]> cb回调)

下面是代码

-----------------------------------------------------------------------------------------------

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using SFB;

public class test : MonoBehaviour {

    // Use this for initialization

    void Start () {

    }

    // Update is called once per frame

    void Update () {

        if(Input.GetKeyDown(KeyCode.Space)){

            StandaloneFileBrowser.OpenFilePanelAsync("打开的窗口",Application.dataPath,"txt",false,(paths)=>{foreach (var item in paths)

            {

                Debug.Log(item);

            }});

        }

    }

}

如图为调用的程序效果,窗口不会被最小化就算点击其他区域,很好用。

上一篇下一篇

猜你喜欢

热点阅读