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

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

            }});

 

        }

    }

}

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


原文:https://www.jianshu.com/p/5a930906df03

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值