unity3d 本地文件夹选择_unity3d c#创建本地文件夹 - CSDN
  • [csharp] view plaincopy using UnityEngine;  using System.Collections;  using System;  using System.Runtime.InteropServices;...[StructLayout(LayoutKind.Sequential, CharSet = C
    [csharp] view plaincopy在CODE上查看代码片派生到我的代码片
    1. using UnityEngine;  
    2. using System.Collections;  
    3. using System;  
    4. using System.Runtime.InteropServices;  
    5.   
    6. [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]  
    7.   
    8. public class OpenFileName  
    9. {  
    10.     public int structSize = 0;  
    11.     public IntPtr dlgOwner = IntPtr.Zero;  
    12.     public IntPtr instance = IntPtr.Zero;  
    13.     public String filter = null;  
    14.     public String customFilter = null;  
    15.     public int maxCustFilter = 0;  
    16.     public int filterIndex = 0;  
    17.     public String file = null;  
    18.     public int maxFile = 0;  
    19.     public String fileTitle = null;  
    20.     public int maxFileTitle = 0;  
    21.     public String initialDir = null;  
    22.     public String title = null;  
    23.     public int flags = 0;  
    24.     public short fileOffset = 0;  
    25.     public short fileExtension = 0;  
    26.     public String defExt = null;  
    27.     public IntPtr custData = IntPtr.Zero;  
    28.     public IntPtr hook = IntPtr.Zero;  
    29.     public String templateName = null;  
    30.     public IntPtr reservedPtr = IntPtr.Zero;  
    31.     public int reservedInt = 0;  
    32.     public int flagsEx = 0;  
    33. }  
    34.    
    35. public class WindowDll  
    36. {  
    37.     [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]  
    38.     public static extern bool GetOpenFileName([In, Out] OpenFileName ofn);  
    39.     public static bool GetOpenFileName1([In, Out] OpenFileName ofn)  
    40.     {  
    41.         return GetOpenFileName(ofn);  
    42.     }  
    43. }  


    [csharp] view plaincopy在CODE上查看代码片派生到我的代码片
    1. using UnityEngine;  
    2. using System.Collections;  
    3. using System.Runtime.InteropServices;  
    4.   
    5. public class CameraTest : MonoBehaviour  
    6. {  
    7.     public WebCamTexture cameraTexture;  
    8.     public string cameraName = "";  
    9.     private bool isPlay = false;  
    10.     // Use this for initialization  
    11.     void Start()  
    12.     {  
    13.         //StartCoroutine(OpenCamera());  
    14.     }  
    15.   
    16.     // Update is called once per frame  
    17.     void Update()  
    18.     {  
    19.   
    20.     }  
    21.     /// <summary>  
    22.     /// 获取权限打开摄像头  
    23.     /// </summary>  
    24.     /// <returns></returns>  
    25.     IEnumerator OpenCamera()  
    26.     {  
    27.         yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);  
    28.         if (Application.HasUserAuthorization(UserAuthorization.WebCam))  
    29.         {  
    30.             WebCamDevice[] devices = WebCamTexture.devices;  
    31.             cameraName = devices[0].name;  
    32.             cameraTexture = new WebCamTexture(cameraName, 320, 240, 15);  
    33.             cameraTexture.Play();  
    34.             isPlay = true;  
    35.         }  
    36.     }  
    37.   
    38.     void OnGUI()  
    39.     {  
    40.         if (isPlay)  
    41.         {  
    42.             GUI.DrawTexture(new Rect(0, 0, 320, 240), cameraTexture, ScaleMode.ScaleAndCrop);  
    43.         }  
    44.   
    45.         if (GUI.Button(new Rect(0, 0, 100, 35), "OpenDialog"))  
    46.         {  
    47.             OpenFileName ofn = new OpenFileName();  
    48.   
    49.             ofn.structSize = Marshal.SizeOf(ofn);  
    50.   
    51.             ofn.filter = "All Files\0*.*\0\0";  
    52.   
    53.             ofn.file = new string(new char[256]);  
    54.   
    55.             ofn.maxFile = ofn.file.Length;  
    56.   
    57.             ofn.fileTitle = new string(new char[64]);  
    58.   
    59.             ofn.maxFileTitle = ofn.fileTitle.Length;  
    60.   
    61.             ofn.initialDir = UnityEngine.Application.dataPath;//默认路径  
    62.   
    63.             ofn.title = "Open Project";  
    64.   
    65.             ofn.defExt = "JPG";//显示文件的类型  
    66.             //注意 一下项目不一定要全选 但是0x00000008项不要缺少  
    67.             ofn.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR  
    68.   
    69.             if (WindowDll.GetOpenFileName(ofn))  
    70.             {  
    71.                 Debug.Log("Selected file with full path: {0}" + ofn.file);  
    72.             }  
    73.   
    74.         }  
    75.     }  
    76. }  


    原文地址点击这里

    文件的类型设置

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
    1. ofn.filter = "图片文件(*.jpg*.png)\0*.jpg;*.png";  
    展开全文
  • Unity3D调用系统窗口选择本地文件

    万次阅读 热门讨论 2017-09-17 20:38:13
    using UnityEngine; using System.Collections; using System; using System.Runtime.InteropServices; [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] ...public class OpenFileName ...
    using UnityEngine;
    using System.Collections;
    using System;
    using System.Runtime.InteropServices;
    
    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
    
    public class OpenFileName
    {
        public int structSize = 0;
        public IntPtr dlgOwner = IntPtr.Zero;
        public IntPtr instance = IntPtr.Zero;
        public String filter = null;
        public String customFilter = null;
        public int maxCustFilter = 0;
        public int filterIndex = 0;
        public String file = null;
        public int maxFile = 0;
        public String fileTitle = null;
        public int maxFileTitle = 0;
        public String initialDir = null;
        public String title = null;
        public int flags = 0;
        public short fileOffset = 0;
        public short fileExtension = 0;
        public String defExt = null;
        public IntPtr custData = IntPtr.Zero;
        public IntPtr hook = IntPtr.Zero;
        public String templateName = null;
        public IntPtr reservedPtr = IntPtr.Zero;
        public int reservedInt = 0;
        public int flagsEx = 0;
    }
     
    public class WindowDll
    {
        [DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
        public static extern bool GetOpenFileName([In, Out] OpenFileName ofn);
        public static bool GetOpenFileName1([In, Out] OpenFileName ofn)
        {
            return GetOpenFileName(ofn);
        }
    }


    using UnityEngine;
    using System.Collections;
    using System.Runtime.InteropServices;
    using System.Reflection;
    
    public class CameraTest : MonoBehaviour
    {
        public WebCamTexture cameraTexture;
        public string cameraName = "";
        private bool isPlay = false;
        // Use this for initialization
        void Start()
        {
            //StartCoroutine(OpenCamera());
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
        /// <summary>
        /// 获取权限打开摄像头
        /// </summary>
        /// <returns></returns>
        IEnumerator OpenCamera()
        {
            yield return Application.RequestUserAuthorization(UserAuthorization.WebCam);
            if (Application.HasUserAuthorization(UserAuthorization.WebCam))
            {
                WebCamDevice[] devices = WebCamTexture.devices;
                cameraName = devices[0].name;
                cameraTexture = new WebCamTexture(cameraName, 320, 240, 15);
                cameraTexture.Play();
                isPlay = true;
            }
        }
    
        void OnGUI()
        {
            if (isPlay)
            {
                GUI.DrawTexture(new Rect(0, 0, 320, 240), cameraTexture, ScaleMode.ScaleAndCrop);
            }
    
            if (GUI.Button(new Rect(0, 0, 100, 35), "OpenDialog"))
            {
                OpenFileName ofn = new OpenFileName();
    
                ofn.structSize = Marshal.SizeOf(ofn);
    
                ofn.filter = "All Files\0*.*\0\0";
    
                ofn.file = new string(new char[256]);
    
                ofn.maxFile = ofn.file.Length;
    
                ofn.fileTitle = new string(new char[64]);
    
                ofn.maxFileTitle = ofn.fileTitle.Length;
                string path = Application.streamingAssetsPath;
                path = path.Replace('/','\\');
                //默认路径
                ofn.initialDir = path;
                //ofn.initialDir = "D:\\MyProject\\UnityOpenCV\\Assets\\StreamingAssets";
                ofn.title = "Open Project";
    
                ofn.defExt = "JPG";//显示文件的类型
                //注意 一下项目不一定要全选 但是0x00000008项不要缺少
                ofn.flags = 0x00080000 | 0x00001000 | 0x00000800 | 0x00000200 | 0x00000008;//OFN_EXPLORER|OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST| OFN_ALLOWMULTISELECT|OFN_NOCHANGEDIR
    
                if (WindowDll.GetOpenFileName(ofn))
                {
                    Debug.Log("Selected file with full path: {0}" + ofn.file);
                }
    
            }
        }
    }
    




    原文地址点击这里

    文件的类型设置

    ofn.filter = "图片文件(*.jpg*.png)\0*.jpg;*.png";


    展开全文
  • using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine;public class shanchu : MonoBehaviour { string path= @"D:\\a2"; void Start () { } void Update
    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using UnityEngine;
    
    public class shanchu : MonoBehaviour {
    
        string path= @"D:\\a2";
    
        void Start () {
    
        }
    
        void Update () {
            if (Input.GetKeyDown(KeyCode.Q))
            {
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                    print("文件夹不存在,创建");
                }
                else
                {
                    DirectoryInfo file1 = new DirectoryInfo(path);
                    deleteDirs(file1);
                    file1 = null;
                    print("文件夹存在,删除");
                }
            }
        }
    
    
    
    
        void deleteDirs(DirectoryInfo dirs)
        {
            if (dirs == null || (!dirs.Exists))
            {
                return;
            }
    
            DirectoryInfo[] subDir = dirs.GetDirectories();
            if (subDir != null)
            {
                for (int i = 0; i < subDir.Length; i++)
                {
                    if (subDir[i] != null)
                    {
                        deleteDirs(subDir[i]);
                    }
                }
                subDir = null;
            }
    
            FileInfo[] files = dirs.GetFiles();
            if (files != null)
            {
                for (int i = 0; i < files.Length; i++)
                {
                    if (files[i] != null)
                    {
                        Debug.Log("删除文件:" + files[i].FullName + "__over");
                        files[i].Delete();
                        files[i] = null;
                    }
                }
                files = null;
            }
    
            Debug.Log("删除文件夹:" + dirs.FullName + "__over");
            dirs.Delete();
        }
    
    }
    
    展开全文
  • 1.将本地图片(PNG和JPG)加载到UGUI上的Button的Image 2.用Scroll View组件自动排列 using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using UnityEngine.UI;...

    下面脚本实现的功能:

    1.将本地图片(PNG和JPG)加载到UGUI上的Button的Image

    2.用Scroll View组件自动排列

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using System.IO;
    using UnityEngine.UI;
    
    public class Choose : MonoBehaviour
    {
        private GameObject canvas;
        private Button _btn;
        private GameObject button;
    
    
        private List<Texture2D> images = new List<Texture2D>();
    
        void Start()
        {
            canvas = GameObject.Find("Canvas/Scroll View/Viewport/Content");
    
           
            load();
    
            for (int i = 0; i < images.Count; i++)
            {
                button = new GameObject("Button" + i, typeof(Button), typeof(RectTransform), typeof(Image));  //创建一个GameObject 加入Button组件
    
                button.transform.SetParent(this.canvas.transform);  //把Canvas设置成Button的父物体
    
                _btn = button.GetComponent<Button>();   //获得Button的Button组件
    
                //先创建一个Texture2D对象,用于把流数据转成Texture2D
                Sprite sprite = Sprite.Create(images[i], new Rect(0, 0, images[i].width, images[i].height), Vector2.zero);
    
                button.GetComponent<Image>().sprite = sprite;
    
                button.GetComponent<Button>().onClick.AddListener(ChooseButton);
    
            }
        }
    
        /// <summary>
        /// 加载文件夹内图片
        /// </summary>
        void load()
        {
            List<string> filePaths = new List<string>();
    
            string imgtype = "*.BMP|*.JPG|*.GIF|*.PNG";
            string[] ImageType = imgtype.Split('|');
    
            for (int i = 0; i < ImageType.Length; i++)
            {
                //获取Application.dataPath文件夹下所有的图片路径  
                string[] dirs = Directory.GetFiles((Application.dataPath + "/Resources/Screenshot/"), ImageType[i]);
                for (int j = 0; j < dirs.Length; j++)
                {
                    filePaths.Add(dirs[j]);
                }
            }
    
            for (int i = 0; i < filePaths.Count; i++)
            {
                Texture2D tx = new Texture2D(100, 100);
                tx.LoadImage(getImageByte(filePaths[i]));
                images.Add(tx);
            }
        }
    
        /// <summary>  
        /// 根据图片路径返回图片的字节流byte[]  
        /// </summary>  
        /// <param name="imagePath">图片路径</param>  
        /// <returns>返回的字节流</returns>  
        private static byte[] getImageByte(string imagePath)
        {
            FileStream files = new FileStream(imagePath, FileMode.Open);
            byte[] imgByte = new byte[files.Length];
            files.Read(imgByte, 0, imgByte.Length);
            files.Close();
            return imgByte;
        }
    
        public void ChooseButton()
        {
            //UGUI上Button按钮事件
            Debug.Log("按下了");
        }
    
    
    }

    @Liam:有用→收藏→关注   听说长得好看的人都这么做!

    展开全文
  • 在做项目的时候要求创建新的文件夹,如果有重复的就删掉原来的文件夹重新创建。但是DirectoryInfo.Delete()只能删除空文件夹,所以写了一段代码。先删除文件夹下的文件再去删除空的文件夹 void deleteDirs...
  • Unity C# 删除文件夹以及文件夹中的所有内容 if (System.IO.Directory.Exists(@updateAssets.list[0].LocalUrl)) { Debug.LogError(" 存在 删除文件夹 "); Tittle.text = string.Format(" 存在 删除文件夹 【{0...
  • Unity3d本地上传并且裁剪图片-----pc平台 注:引擎版本unity4.x 最近项目需求,需要做用户头像,要求: 1. 可以从本地上传 2. 本地裁剪 3. 压缩控制大小 4. 在三个平台实现PC/Android/IOS 弄了好几天总是搞...
  • 首先我们查一下unity官方手册可以看到下面的画面(我是使用谷歌浏览器的翻译)。 我们点进打开文件OpenFilePanel里去看官方示例,代码如下: using System.IO; using UnityEngine; using UnityEditor; public ...
  • Unity3D开发:向Unity3D中导入外部模型

    万次阅读 2017-12-21 18:50:37
    Unity3D开发:向Unity3D中导入外部模型 转载 2014年04月09日 14:00:07 49677 Unity3D支持多种外部导入的模型格式,这里列出了它支持的外部模型的属性,并且以3D MAX为例,导出FBX文件给Unity...
  • Unity浏览本地文件

    2019-12-11 14:32:24
    1、浏览本地文件 public static void DeleteGo() { string path1 = @"F:\BookCity_OutputBin\HuaShiDaUnity\assets\Res_BornEffects"; //System.Diagnostics.Process.Start("explorer.exe", path); ...
  • Unity3D 资源管理文件加密
  • [unity3d]保存文件到本地and加载本地文件

    万次阅读 热门讨论 2019-07-26 09:50:43
    今天要做一个移动平台的版本控制,先做一个前期的工作,就是从服务器端加载资源,然后读取到本地,再从本地读取资源。这里就以pc平台为例,移动平台也是一样,就是稍微做一点路径上的修改, 下面是不同平台路径的预...
  • Unity读取本地图片资源

    万次阅读 2016-04-08 17:08:28
    我们以Unity读取本地图片资源为例,总结三种读取方法: 1.采用Resource.Load方法读取,读取在Unity中Assets下Resources目录下的资源名,注意不采用后缀名。(意思是Load方法直接在Resources目录下找资源,路径已经...
  • Unity3D实现多语言本地

    万次阅读 2019-04-11 11:14:41
    一款游戏可能有多个语言版本,...接下来我做一个简单Demo,介绍创建一个简单语言本地化项目 先在Scene视图下创建两个按钮,如下图 在Project视图下新建一个Resources文件夹 在Resources文件夹下新建两个名为...
  • unity3d工程里面
  • 我们知道,Unity3d会将Assets folder下的图片进行编译预处理,在程序打包完成后,我们是无法动态的修改图片内容,所以,如果能动态的从非Assets 目录下加载图片就是一个非常好的方法。我们可以使用Unity3d WWW类提供...
  • Unity加载本地图片

    2020-07-31 01:31:57
    Unity加载本地指定目录下的图片,也可批量加载指定目录下的图片。
  • Unity3D截图并保存本地目录

    千次阅读 2015-11-27 16:07:57
    1.找到System.Windows.Forms.dll,并放在project... “D:\Unity3D\Editor\Data\Mono\lib\mono\2.0\System.Windows.Forms.dll” 2.打开Player Settings 把.NET 2.0 Subset 改为.NET 2.0; using UnityEngine; using Sy
  • ...Unity3D脚本:Unity3D载入外部视频脚本 Posted on 2013年01月26日 by U3d / Unity3D脚本/插件 /被围观 93 次 public var url="file:///c:/sample.ogg"; function Start () { url=
  • Unity编写选择文件或路径脚本所使用的库文件内容,实现调用系统窗口选择或使用自带的方法选择
1 2 3 4 5 ... 20
收藏数 2,675
精华内容 1,070
关键字:

unity3d 本地文件夹选择