[RÉSOLU] [DB-AL], Création dossier Android

Toutes les questions sur le développement Mobile, y compris la partie script.
Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

[RÉSOLU] [DB-AL], Création dossier Android

Message par Paullux » 21 Jan 2018 19:53

J'essaye d'ajouter une fonction pour prendre des captures d'écran de mon jeu Android, aujourd'hui, j'ai écrit ceci :

Code : Tout sélectionner

        if (Input.GetKey((KeyCode)PlayerPrefs.GetInt("screenshotInt")))
        {
            pathDCIM = "../../../../DCIM/ZombiesMurderers";
            if (!Directory.Exists(pathDCIM)) Directory.CreateDirectory(pathDCIM);
            mypath = Path.Combine(pathDCIM, "Screenshot_" + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".png");
            ScreenCapture.CaptureScreenshot(mypath);
        }
cela ne marche pas, j'ai ajouter dans Player Settings les droits d'écriture externe.

J'aimerais bien savoir pourquoi.
Et si quelqu'un sais la bonne réponse je suis preneur...

Ce que je voudrais c'est le chemin absolu vers DCIM pour y créer mon dossier et y placer mes captures.
Dernière édition par Paullux le 22 Jan 2018 23:30, édité 2 fois.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL], Création dossier Android

Message par Paullux » 21 Jan 2018 21:10

En cherchant un peu, j'ai trouvé ça :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class CaptureEcran : MonoBehaviour {
    public AudioClip AppPhoto;
    public AudioSource source;
    private string mypath, pathDCIM, myrealpath;
    
    void Update()
    {
        AndroidJavaClass envClass = new AndroidJavaClass("android.os.Environment");
        pathDCIM = envClass.GetStatic<string>("DIRECTORY_DCIM");
        mypath = Path.Combine(pathDCIM, "ZombiesMurderers");

        if (!Directory.Exists(mypath)) Directory.CreateDirectory(mypath);

        if (Input.GetKey((KeyCode)PlayerPrefs.GetInt("screenshotInt")))
        {
            myrealpath = Path.Combine(mypath, "Screenshot_" + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".png");
            source.PlayOneShot(AppPhoto, 1f);
            ScreenCapture.CaptureScreenshot(mypath);
        }
    }

}
mais ça ne marche pas plus
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6186
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: [DB-AL], Création dossier Android

Message par boubouk50 » 22 Jan 2018 11:35

As-tu vu ce post?
viewtopic.php?f=11&t=12146
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL], Création dossier Android

Message par Paullux » 22 Jan 2018 20:50

Par contre il y a un truc lorsque je faisait Directory.CreateDirectory le script s'arrêté net...
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL], Création dossier Android

Message par Paullux » 22 Jan 2018 22:21

Aujourd'hui, mon script est devenu ça :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class CaptureEcran : MonoBehaviour {
    public AudioClip AppPhoto;
    public AudioSource source;
    public bool Shot_Taken; 
    private string filename, mypath, pathfile, pathdest;

    void Start()
    {
        mypath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "ZombiesMurderers/");
        if (!Directory.Exists(mypath)) Directory.CreateDirectory(mypath);
        Shot_Taken = false;
    }
    void Update()
    {
        if (!Shot_Taken && Input.GetKey((KeyCode)PlayerPrefs.GetInt("screenshotInt")))
        {
            Shot_Taken = true;
            StartCoroutine("PrendreUnePhoto");
        }
    }
    IEnumerator PrendreUnePhoto()
    {
        filename = "Screenshot_" + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".png";

        source.PlayOneShot(AppPhoto, 1f);

        ScreenCapture.CaptureScreenshot(filename);
        yield return new WaitForSeconds(2f);

        pathfile = Path.Combine(Application.dataPath, filename);
        pathdest = Path.Combine(mypath, filename);

        if (File.Exists(pathfile)) File.Move(pathfile, pathdest);
        yield return new WaitForSeconds(0.25f);
        Shot_Taken = false;
    }
}
Mais, pas de fichier créé et pas de déplacement de fichier.
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Avatar de l’utilisateur
Paullux
Messages : 68
Inscription : 12 Nov 2015 17:11
Contact :

Re: [DB-AL], Création dossier Android

Message par Paullux » 22 Jan 2018 23:29

ça y est j'ai la réponse, merci pour le lien :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class CaptureEcran : MonoBehaviour {
    public AudioClip AppPhoto;
    public AudioSource source;
    public bool Shot_Taken; 
    private string filename, mypath, pathfile, pathdest, folderDCIM, myfolder;

    void Start()
    {
        //Récupérer la classe Environment d'Android
        AndroidJavaClass envClass = new AndroidJavaClass("android.os.Environment");
        
        //Récupérer le dossier traditionnel contenant les images et vidéos
        folderDCIM = envClass.GetStatic<string>("DIRECTORY_DCIM");
        
        //Récupérer le dossier
        AndroidJavaObject externalStorageFile = envClass.CallStatic<AndroidJavaObject>("getExternalStoragePublicDirectory", folderDCIM);
        
        //Récupérer le chemin absolu vers ce dossier
        myfolder = externalStorageFile.Call<string>("getAbsolutePath");
        
        //Création de mon dossier Image Perso
        mypath = myfolder + "/ZombiesMurderers/";

        if (!Directory.Exists(mypath)) Directory.CreateDirectory(mypath);

        Shot_Taken = false;
    }
    void Update()
    {
        if (!Shot_Taken && Input.GetKey((KeyCode)PlayerPrefs.GetInt("screenshotInt")))
        {
            Shot_Taken = true;
            StartCoroutine("PrendreUnePhoto");
        }
    }
    IEnumerator PrendreUnePhoto()
    {
        filename = "Screenshot_" + System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".png";

        source.PlayOneShot(AppPhoto, 1f);

        ScreenCapture.CaptureScreenshot(filename);
        yield return new WaitForSeconds(2f);

        pathfile = Application.persistentDataPath + "/" + filename;
        pathdest = mypath + "/" + filename;

        if (File.Exists(pathfile)) File.Move(pathfile, pathdest);
        yield return new WaitForSeconds(0.25f);
        Shot_Taken = false;
    }
}
J'ai créé un ensemble de jeux :

Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo

Il s'agit de FPS pour Android.

Répondre

Revenir vers « Développement plateformes mobile Iphone et Android »