zoukankan      html  css  js  c++  java
  • Unity输出PC端(Windows) 拖拽文件到app中

    需求:给策划们写一个PC端(Window)的Excel导表工具。本来用OpenFile打开FileExplorerDialog后让他们自己选择想要添加的Excel文件就行了,结果有个需求是希望能拖拽Excel文件直接添加进来,觉得这样做更方便。

    桌面应用用winform和wpf来写的话,这个功能应该还挺好做,用Unity来做就比较蛋疼了。。。查了一下多是调用win32的api。

    概括一下,就是需要拖过文件管理器选文件,和通过鼠标拖拽的方式选中文件。

    这个导表工具大致关键点是:

    1、常规方式导入Excel文件。Unity中用UGUI拼好界面,做一个Item模板(可做为prefab预制体),点按钮打开FileExplorerDialog,多选Excel文件后按确定,动态生成Item加入到ScrollView的Content下。要求ScrollView下的Content添加Content Size Fitter和Grid Layout Group组件。这种导入方式建议用Crosstale的FileBrowser插件(这里)。

    2、Window平台下用拖拽文件到app窗口中的方式添加文件。建议使用这个工具(这里),主要是C#调用win32的api。FileDragAndDrop.cs文件中有用法样例。稍微加一句MessageBox输出拖拽进app的文件路径:

    void OnFiles(List<string> pathList, POINT aPos)
    {
        // do something with the dropped file names. aPos will contain the 
        // mouse position within the window where the files has been dropped.
        Debug.Log("Dropped "+pathList.Count+" files at: " + aPos + "
    "+
            pathList.Aggregate((a, b) => a + "
    " + b));
    
        StringBuilder sb = new StringBuilder();
        sb.Append("拖拽文件进来了
    
    ");
        foreach (var path in pathList)
        {
            sb.Append(path);
            sb.Append("");
        }
        MessageBox.Show(sb.ToString());
    }

    测试一下,运行后拖文件进来,效果如下:

     

    建议:如果只是想做一个桌面应用,真心不建议用Unity。Unity也就拼个UI,很多跟操作系统交互的功能很难做(比如这次的拖拽文件进窗体,响应快捷键等)。建议选用.Net原生开发,如WPF。

  • 相关阅读:
    Java实现 蓝桥杯 算法训练 画图(暴力)
    Java实现 蓝桥杯 算法训练 画图(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 Cowboys
    Java实现 蓝桥杯 算法训练 Cowboys
    55. Jump Game
    54. Spiral Matrix
    50. Pow(x, n)
  • 原文地址:https://www.cnblogs.com/guxin/p/9575398.html
Copyright © 2011-2022 走看看