关于unity的绝对路径与相对路径的使用

最近做到关于Unity做图片动态调用的问题,采用的WWW方式对相对路径中的大量图片进行调用,并将其赋值给NGUI的Texture中,经过几次尝试后成功,由于之前对路径问题根本不熟,所以有点麻烦。
Unity3D关于路径资源的调用分为绝对路径和相对路径,这里我用了两种尝试:

  CatalogPaper = "file://D:\\TestFile\\Cat\\" + PaperNumber + ".png";
  ContentPaper = "file://D:\\TestFile\\黄山市志1\\黄山市志1-" + PaperNumber + ".png";
上述两种都是绝对路径的调用,在win平台下路径需要对根目录添加"//"这是win的特点,而后面的路径添加“\\”来对目录名称进行划分,可以对部分进行修改。

绝对路径限制还是太大,所以后来用的相对路径:
在unity 的工程文件中新建文件夹StreamingAssets,本文件夹在exe文件生成后不会被压缩,可以对其中的文件进行替换,操作会比较方面其中对路径的提取示例代码是:
ContentPaper = "file://" + Application.streamingAssetsPath + "\\黄山市志1\\" +"黄山市志1-"+PaperNumber + ".png";
由于之前查过网上很多问题,都没有说一定要加 " file : / / ",所以频频报错。

这种调用方式一定要用协同程序通过www类进行调用。
IEnumerator GetTexture(string url)
    {    
        WWW www = new WWW (url);
        //此处表示只有等上面的www加载完成后才会进行下一步
        yield return www;
        background = www.texture;
        this.GetComponent<UITexture> ().mainTexture = background;
        yield return null;
    }
协同在加载资源的方面使用很广泛,曾经尝试通过kinect对面部进行截图然后储存在其中,再将其贴到虚拟角色的脸上,常常出现空指针的问题。

你可能感兴趣的:(关于unity的绝对路径与相对路径的使用)