您的位置:首页 > 移动开发 > Unity3D

Unity3D中各种Path

2016-05-26 19:45 519 查看
Unity中Path在不同平台下值

IOS:

Application.dataPath :                    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data

Application.streamingAssetsPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw

Application.persistentDataPath :    Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents

Application.temporaryCachePath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches

Android:

Application.dataPath :            /data/app/xxx.xxx.xxx.apk

Application.streamingAssetsPath :    jar:file:///data/app/xxx.xxx.xxx.apk/!/assets

Application.persistentDataPath :    /data/data/xxx.xxx.xxx/files

Application.temporaryCachePath :    /data/data/xxx.xxx.xxx/cache

Windows Web Player:

Application.dataPath :            file:///D:/MyGame/WebPlayer (即导包后保存的文件夹,html文件所在文件夹)

Application.streamingAssetsPath :

Application.persistentDataPath :

Application.temporaryCachePath :

****************************************************************************************************************

路径拼装方法:

    public class PathUtils

    {

        private static PathUtils _instance = null;

        public static PathUtils Instance()

        {

            if (_instance == null)

            {

                _instance = new PathUtils();

            }

            return _instance;

        }

        //private static string ApplicationDataPath = "";

        private static string ApplicationStreamingPath = "";

        private static string ApplicationPersistentDataPath = "";

        private static string ApplicationTemporaryDataPath = "";

        private static bool m_bIsEditor = false;

        public enum UnityPathType

        {

            UnityPath_Resources = 0,    // Unity内置路径,只支持Resource.Load方法读取 

            UnityPath_StreamAsset,      // Unity流目录,只读目录

            UnityPath_PersistentData,   // Untity持久目录, 支持读写 文本文件或者二进制文件可以存放 

            UnityPath_TemporaryCache,   // Unity临时缓存目录 功能同 UnityPath_PersistentData

        }

        public PathUtils()

        {

            //ApplicationDataPath = Application.dataPath + "/";

            if (Application.platform == RuntimePlatform.Android) /// Application.streamingAssetsPath在安卓平台下已经自带了 jar:file:///

            {

                ApplicationStreamingPath = Application.dataPath + "!/assets/";

            }

            else

            {

                ApplicationStreamingPath = Application.streamingAssetsPath + "/";

            }

            ApplicationPersistentDataPath = Application.persistentDataPath + "/";

            ApplicationTemporaryDataPath = Application.temporaryCachePath + "/";

        }

       /// <summary>

        /// 获取文件钱路径 支持文件系统 UnityPath_StreamAesset目录在安卓平台只支持www的方式来读取

        /// </summary>

        /// <param name="strFileName"></param>

        /// <returns></returns>

        public string FullPathFileName(ref string strFileName, UnityPathType pathType = UnityPathType.UnityPath_PersistentData)

        {

            string strFullPath = "";

            switch (pathType)

            {

                case UnityPathType.UnityPath_StreamAsset:

                    strFullPath = ApplicationStreamingPath + strFileName;

                    break;

                case UnityPathType.UnityPath_PersistentData:

                    strFullPath = ApplicationPersistentDataPath + strFileName;

                    break;

                case UnityPathType.UnityPath_TemporaryCache:

                    strFullPath = ApplicationTemporaryDataPath + strFileName;

                    break;

                case UnityPathType.UnityPath_CustomPath:

                    strFullPath = ResourcePath + strFileName;

                    break;

            }

            return strFullPath;

        }

        /// <summary>

        /// 获取文件URL路径 URL格式的路径则必须使用www来读取

        /// </summary>

        /// <param name="strFileName"></param>

        /// <returns></returns>

        public string FullUrlFileName(ref string strFileName, UnityPathType pathType = UnityPathType.UnityPath_StreamAsset)

        {

            string strFullUrl = "";

            switch (pathType)

            {

                case UnityPathType.UnityPath_StreamAsset:

                    strFullUrl =
acc8
ApplicationStreamingPath + strFileName;

                    break;

                case UnityPathType.UnityPath_PersistentData:

                    strFullUrl = ApplicationPersistentDataPath + strFileName;

                    break;

                case UnityPathType.UnityPath_TemporaryCache:

                    strFullUrl = ApplicationTemporaryDataPath + strFileName;

                    break;

                case UnityPathType.UnityPath_CustomPath:

                    strFullUrl = ResourcePath + strFileName;

                    break;

            }

            switch (Application.platform)

            {

                case RuntimePlatform.Android:

                    if (pathType == UnityPathType.UnityPath_StreamAsset)

                    {

                        strFullUrl = "jar:file://" + strFullUrl;

                    }

                    else

                    {

                        strFullUrl = "file://" + strFullUrl;

                    }

                    break;

                case RuntimePlatform.IPhonePlayer:

                case RuntimePlatform.WindowsPlayer:

                case RuntimePlatform.WindowsEditor:

                case RuntimePlatform.OSXEditor:

                    {

                        strFullUrl = "file://" + strFullUrl;

                    }

                    break;

            }

            return strFullUrl;

        }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: