2 u014576926 u014576926 于 2016.09.18 22:32 提问

使用Unity打开文件对话框,报错“GCHandle value cannot be zero” 5C

我在网上找了一个打开用Unity打开文件对话框的示例,运行的时候报错“GCHandle value cannot be zero”,请问有哪位大牛知道怎么解决吗?另外使用的是System.Windows.Forms库

以下是代码

 using System;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;



public class FileMenu : MonoBehaviour {

    //SaveFileDialog saveLog;
    StreamReader sr;
    //StreamWriter sw;
    string strSendTxt;



    // 显示文本和输入文本框所在的类
    public GameObject text ;

    public  void fnOpen()
    {
        Debug.Log ("Open");
        try
        {
            OpenFileDialog opLog = new OpenFileDialog();
            opLog.InitialDirectory = UnityEngine.Application.dataPath;
            opLog.Filter = "txt files(*.txt)|*.txt|All files(*.*)|*.*";

            DialogResult result = opLog.ShowDialog();
            if(result == DialogResult.OK)
            {
                string path = opLog.FileName;
                Debug.Log(path);
                sr = File.OpenText(path);

                string line = "";
                List<string> lst = new List<string>();
                strSendTxt = "";

                while(  (line == sr.ReadLine()) != null)
                {
                    lst.Add(line);
                }

                foreach(string s in lst)
                {
                    strSendTxt += s+"\n";
                }

                //文本框的文本内容发生改变
                text.GetComponent<Text>().text = strSendTxt;
                sr.Close();
                sr.Dispose();
            }
        }
        catch(Exception e) {

            Debug.Log ("打开错误!" + e.Message);
            //Application.Quit(0);
        }

    }
}

1个回答

devmiao
devmiao   Ds   Rxr 2016.09.18 23:55
u014576926
u014576926 没有我要的答案,谢谢~
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
unity 文件对话框的打开
unity 动态添加脚本到prefab上 并实例化组件 获取到assets文件夹路径 并通过EditorUtility.OpenFilePanel()打开的文件夹对话框 字符串的截取(左边开始删除多少位) AudioSource的获取 Mathf.Floor()将浮点数转换为小于或等于的整数
ArgumentException: GCHandle value belongs to a different domain
GCHandle多次调用ToIntPtr或者FromIntprt会产生这个问题
Unity3d制作一个简单的打开保存对话框-按钮2
上次我们提到创建控制整个面板的UIFindDirectory的脚本,我们依然还是先从功能分析起来。在整个UI面板当中,最重要的是打开或者保存文件这样的按钮,因此我们先从这几个按钮需要实现的这些功能做起。因此我们需要再创建一个UIDirectoryButton的脚本,我们首先要确定所有按钮的类型。每个类型按钮将会对应不同的按钮激发的函数。同时我们设置Action这个特殊的按钮类型,将该类型和Even
Unity3d打开文件选择对话框
如何在unity3d中选择本地文件呢,网上有介绍使用OpenFileDialog的方法来调用windows的文件选择对话框,但是要弹出windows窗口,这对于在全屏模式下选择文件来说界面就有些不太友好了。为了使用unity3中元素显示文件选择对话框,本人封装了一个dll文件可嵌入unit3d用于文件选择,界面还可以自己修改。 效果如图:,左边就是一个文件选择窗口,可以选择指定类型的文件,组件还
Unity调用Win32的打开和保存文件对话框
在window平台下,有时我们需要打开或则保存一些东西到指定目录下,这时我们不需要再重复造轮子,完全可以调用系统的文件窗口,
unity----OpenFileDialog打开选择对话框
using UnityEngine; using System.Collections; using System; using System.Runtime.InteropServices; [ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Auto )] public class OpenFileName { pub
Unity中打开文件窗口(OpenFileDialog)的几种方法
所使用Unity版本:2017.1.0f3,Unity中打开文件窗口(OpenFileDialog)的几种方法
Unity3d制作一个简单的打开保存对话框-编写核心代码(1)
使用Unity3d制作一个简单的打开保存对话框-编写核心代码   前言: 前面我曾经提到过使用unity3d调用windows的打开和保存对话框的功能,但是我们发现这样在unity中可能会出现崩溃的问题,而且出现的情况貌似还有差异,因为看到有人在问我突然崩溃了怎么办,但是我这边项目的测试时候并没有出现过类似的情况,进而考虑到UI的风格必须要和windows自带的一样,那么如果我们想定制自己项
Unity中调用文件选择对话框
using System; using System.Runtime.InteropServices; [ StructLayout( LayoutKind.Sequential, CharSet=CharSet.Auto )] public class OpenFileDlg { public int structSize = 0; public IntPtr
Android中删除EditText中内容时报SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
在使用Android中的EditText时,若在对应APP窗口中删除文本框中的内容或移动光标位置时,会出现如下错误: 解决方法:        在对应EditText下添加  android:inputType="textNoSuggestions"  属性即可: