Copier les fichiers de Resources / StreamingAssets vers Application.persistentDataPath lors de l’installation

J’ai un fichier txt qui contient des données pour mes cartes en jeu. Le problème est que le fichier est stocké dans Application.persistentDataPath afin que je puisse le modifier même à partir de mon appareil Android (créateur de carte créé). Comment puis-je inclure le fichier txt que j’ai créé sur mon PC avec des cartes de base et le faire apparaître dans persistentDataPath sur mon Android? appareil lors de l’installation de l’application?

Vous pouvez placer le fichier dans le dossier Resources du dossier Editor, puis le lire avec l’API Resources.

 TextAsset txtAsset = (TextAsset)Resources.Load("textfile", typeof(TextAsset)); ssortingng tileFile = txtAsset.text; 

Vous pouvez vérifier si c’est la première fois que l’application s’exécute avec cela . Ensuite, vous pouvez copier les données chargées dans le répertoire Application.persistentDataPath .


Le dossier Ressources est connu pour augmenter les temps de chargement. Je suggère que vous ne l’utilisiez pas mais c’est une option qui vaut la peine d’être connue.

Placez le fichier dans le dossier StreamingAssets , puis lisez-le avec le UnityWebRequest WWW ou UnityWebRequest API et Application.streamingAssetsPath , puis copiez-le dans Application.persistentDataPath .

Charger à partir de StreamingAssets :

 IEnumerator ReadFromStreamingAssets() { ssortingng filePath = System.IO.Path.Combine(Application.streamingAssetsPath, "MyFile"); ssortingng result = ""; if (filePath.Contains("://") || filePath.Contains(":///")) { UnityEngine.Networking.UnityWebRequest www = UnityEngine.Networking.UnityWebRequest.Get(filePath); yield return www.SendWebRequest(); result = www.downloadHandler.text; } else result = System.IO.File.ReadAllText(filePath); } 

puis enregistrez-le sur persistentDataPath:

 File.WriteAllText(Application.persistentDataPath + "data/MyFile.txt", result); 

Vous pouvez stocker ce fichier dans votre dossier Ressources et le copier dans Application.persistentDataPath lors du premier lancement de votre application. Ou lisez le fichier depuis Ressources au premier lancement et créez un fichier avec le même contenu dans Application.persistentDataPath .