Resultados 1 al 9 de 9

Tema: Guardar debug.log en archivo de texto con Unity

  1. #1
    Fecha de ingreso
    Oct 2021
    Mensajes
    8

    Guardar debug.log en archivo de texto con Unity

    Hola, me gustaría guardar la información que obtengo en el debug.log en Unity mediante este simple script en un archivo de texto, en una ruta personalizada (c:/blabla...). He tratado de encontrar información por internet pero todavía estoy verde.

    Código:
    public void ReadStringInput(string s){
            input=s;
            Debug.Log(input);
        }
    Necesito guardarlos de manera permanente para operar con ellos posteriormente en otras escenas. Si hay algún alma caritativa se lo agradeceré mucho.

  2. #2
    Fecha de ingreso
    Apr 2002
    Mensajes
    25,945
    Hola, ¿has probado a mirar en el directorio AppData? Esas cosas suelen estar ahí. Mira a ver si lo encuentras.

    La ruta tipo sería: C:\Users\username\AppData\Local\Unity\Editor\debug .log

    Pero claro, si estás en un PC donde haya varios usuarios creados y no lo encuentras, mira a ver desde que usuario se está ejecutando el Unity.

    O también puedes usar el buscador de archivos y buscar por "debug.log" te saldrán muchos, pero si no lo encuentras de otra forma, te puede servir.

    Ya dirás, un saludo amigo.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

  3. #3
    Fecha de ingreso
    Oct 2021
    Mensajes
    8
    Hola gracias por responder. Pues no me aparece el debug.log en la carpeta que debería estar. Tampoco haciendo la búsqueda en el buscador de archivos.

    De todas formas lo que trato de conseguir es que Unity me guarde el resultado que aparece en debug.log en un archivo ubicado en la carpeta que yo le indique, para que queden ahí y pueda llamarlos y cargarlos en otras escenas.

    He probado con prefabs y no consigo tampoco almacenar datos, y no quiero liarme con JSON, pensaba que sería lo más fácil y debía haber alguna forma de guardar el debug.log en no se, c://etc//etc... por ejemplo.

    El caso que hace años usé Unity y me suena que hice algo parecido, pero ya ni me acuerdo como se hacía.

  4. #4
    Fecha de ingreso
    Oct 2021
    Mensajes
    8
    Cita Iniciado por 3dpoder Ver mensaje
    Hola, ¿has probado a mirar en el directorio AppData? Esas cosas suelen estar ahí. Mira a ver si lo encuentras.

    La ruta tipo sería: C:\Users\username\AppData\Local\Unity\Editor\debug .log

    Pero claro, si estás en un PC donde haya varios usuarios creados y no lo encuentras, mira a ver desde que usuario se está ejecutando el Unity.

    O también puedes usar el buscador de archivos y buscar por "debug.log" te saldrán muchos, pero si no lo encuentras de otra forma, te puede servir.

    Ya dirás, un saludo amigo.
    Disculpa, realicé mal la respuesta y no te habrá llegado la alerta. Me interesa guardar en una ruta personalizada los datos del debug. Mi idea es crear varios archivos e ir llamándolos desde otras escenas para operar con los guardados. Prefiero crear la ruta dentro de una de las carpetas de la aplicación, de esta forma si exporto para Android, por ejemplo, no tendré que readaptar las rutas. Un saludo!

  5. #5
    Fecha de ingreso
    Apr 2002
    Mensajes
    25,945
    Cita Iniciado por Ekiarmi Ver mensaje
    Disculpa, realicé mal la respuesta y no te habrá llegado la alerta. Me interesa guardar en una ruta personalizada los datos del debug. Mi idea es crear varios archivos e ir llamándolos desde otras escenas para operar con los guardados. Prefiero crear la ruta dentro de una de las carpetas de la aplicación, de esta forma si exporto para Android, por ejemplo, no tendré que readaptar las rutas. Un saludo!
    Eso ya es más complicado, hasta ahí no llego, pero creo que tu solución puede ser la que han publicado en el foro de Unity. Echa un vistazo a ver si te puede servir, parece que lo que quieres hacer no se puede hacer directamente desde el programa. Un usuario del foro ha publicado un código que dice que le funciona.

    Enlace al código en el foro de Unity.

    Código:
     
    using UnityEngine;
     
    public class LogAnywhere : MonoBehaviour
    {
        string filename = "";
        void OnEnable() { Application.logMessageReceived += Log;  }
        void OnDisable() { Application.logMessageReceived -= Log; }
     
        public void Log(string logString, string stackTrace, LogType type)
        {
            if (filename == "")
            {
                string d = System.Environment.GetFolderPath(
                  System.Environment.SpecialFolder.Desktop) + "/YOUR_LOGS";
                System.IO.Directory.CreateDirectory(d);
                filename = d + "/your_happy_log.txt";
            }
     
            try {
                System.IO.File.AppendAllText(filename, logString + "\n");
            }
            catch { }
        }
    }
    |Agradecer cuando alguien te ayuda es de ser agradecido|

  6. #6
    Fecha de ingreso
    Oct 2021
    Mensajes
    8

    Thumbs up

    Cita Iniciado por 3dpoder Ver mensaje

    Enlace al código en el foro de Unity.

    Código:
     
    using UnityEngine;
     
    public class LogAnywhere : MonoBehaviour
    {
        string filename = "";
        void OnEnable() { Application.logMessageReceived += Log;  }
        void OnDisable() { Application.logMessageReceived -= Log; }
     
        public void Log(string logString, string stackTrace, LogType type)
        {
            if (filename == "")
            {
                string d = System.Environment.GetFolderPath(
                  System.Environment.SpecialFolder.Desktop) + "/YOUR_LOGS";
                System.IO.Directory.CreateDirectory(d);
                filename = d + "/your_happy_log.txt";
            }
     
            try {
                System.IO.File.AppendAllText(filename, logString + "\n");
            }
            catch { }
        }
    }
    Muchas gracias, voy a trastear un poco y te cuento. No me esperaba que fuera tan difícil.

  7. #7
    Fecha de ingreso
    Apr 2002
    Mensajes
    25,945
    Ya comentarás cómo te ha ido, a ver si puede servir a otros usuarios a posteriori. Un saludo.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

  8. #8
    Fecha de ingreso
    Oct 2021
    Mensajes
    8
    Cita Iniciado por 3dpoder Ver mensaje
    Ya comentarás cómo te ha ido, a ver si puede servir a otros usuarios a posteriori. Un saludo.
    Mil disculpas por la tardanza, pero no me he olvidado.

    Es bastante sencillo. El script guarda lo que escriba el Debug.Log. Pongo un ejemplo con un script rápido de ejemplo que hice para probar. En este ejemplo he puesto una imagen en movimiento con un collider2D, que choca contra otro y crea un Log. Cuando se crea el log, el script que me pasaste crea una carpeta en el escritorio con el contenido de Debug. Es un aporte buenísimo, gracias por compartirlo.

    Código:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class ParedChoque : MonoBehaviour
    {
    
    
        public bool Chocando;
      private void OnTriggerEnter2D(Collider2D other)
        {
            if(other.tag == "Activador")
            {
                Chocando = true;
                gameObject.SetActive(false);
                Debug.Log("Probando,probando");
                contador.instancia.contar();
    
            }
        }
    
        string filename = "";
        void OnEnable() { Application.logMessageReceived += Log;  }
        void OnDisable() { Application.logMessageReceived -= Log; }
     
        public void Log(string logString, string stackTrace, LogType type)
        {
            if (filename == "")
            {
                string d = System.Environment.GetFolderPath(
                  System.Environment.SpecialFolder.Desktop) + "/YOUR_LOGS";
                System.IO.Directory.CreateDirectory(d);
                filename = d + "/your_happy_log.txt";
            }
     
            try 
            {
                System.IO.File.AppendAllText(filename, logString + "\n");
            }
            catch 
            {}
        }   
    }

  9. #9
    Fecha de ingreso
    Apr 2002
    Mensajes
    25,945
    Me alegro de que haya servido y lo hayas podido solucionar, un saludo.
    |Agradecer cuando alguien te ayuda es de ser agradecido|

Temas similares

  1. Problema al guardar archivo en red
    Por kino_unico en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    : 30-03-2015, 12:04
  2. Guardar texturas en el archivo
    Por 3J Kernel en el foro Postproducción
    Respuestas: 2
    : 24-07-2014, 19:20
  3. Guardar archivo con texturas
    Por JCC en el foro Materiales y Texturizado
    Respuestas: 4
    : 14-01-2008, 19:36
  4. Guardar archivo de 3ds Max y referencias
    Por Partan en el foro Programas de Diseño 3D y CAD
    Respuestas: 2
    : 26-04-2006, 16:52
  5. Error al guardar archivo 3ds Max
    Por jm en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 01-09-2003, 22:28

Etiquetas para este tema