Unity_数据存储篇(上)

发布于 2019-05-15  65 次阅读


Asset

对于Unity来说是全局的数据,都可以访问

  • 首先创建脚本,继承ScriptableObject;
  • 添加属性[CreateAssetMenu(fileName = "xxx",menuName = "(ccc)XX")];
  • 右键创建,成功之后,就可以根据下图来创建一些数据来进行存储。
    图片

Path

对于streamingAssetsPath,在移动端只支持读取,不支持修改。

    #region 平台路径选择
    public static void Select_Platform(out string str)
    {
        //if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer)
        //{//这样也行   //}
#if UNITY_ANDROID
      Debug.Log("这里是安卓设备");
      str = "jar:file://" + Application.dataPath + "!/assets/" ; 
#endif 
#if UNITY_IPHONE
      Debug.Log("这里是苹果设备");  
      str =  Application.dataPath + "/Raw/";
#endif 
#if UNITY_STANDALONE_WIN
        Debug.Log("我是从Windows的电脑上运行的");
        str = Application.streamingAssetsPath + "/";
#endif
    }
    #endregion

如果想修改,就要用到persistentDataPath,应该这样写。

#if (UNITY_ANDROID || UNITY_IPHONE) && !UNITY_EDITOR
        str = Application.persistentDataPath + "/";
#endif
#if UNITY_STANDALONE_WIN || UNITY_EDITOR
        str = Application.streamingAssetsPath + "/";
#endif

当前缓存目录,清除内存后就不会再有了Application.temporaryCachePath

所以做项目时,要根据实际情况而定,记得对数据进行加密。


不积跬步,无以至千里;不积小流,无以成江海。