美文网首页unity插件推荐
在Unity里面如何调用系统窗口

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

作者: CodeHunter | 来源:发表于2018-05-23 13:48 被阅读599次

    最近在研究如何在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);

                }});

            }

        }

    }

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

    相关文章

      网友评论

        本文标题:在Unity里面如何调用系统窗口

        本文链接:https://www.haomeiwen.com/subject/funljftx.html