Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Duditas en save-load

Iniciado por R3N3, Marzo 25, 2016, 03:14:43 PM

Tema anterior - Siguiente tema
Hola unityspain. He logrado al fin, después de tanto investigar, crear mi propio sistema de guardar-cargar. Necesito vuestra ayuda para hacerlo un poco más eficiente en dos puntos:El primero:
En la GUI del juego, cuando se selecciona un botón correspondiente a una partida guardada, tomo el nombre del archivo y se lo paso en un mensaje al script encargado de cargar. Entonces el método recibeNombre() asigna el nombre recibido al jugador y llama al método cargar(). Es ahí cuando sucede el error (Adjunto fotos del error y del método). Para resolverlo temporalmente uso el Invoke(), solo lo llamo una vez, así que me funciona; pero NO es lo correcto, quisiera hacer las cosas bien.
PD: recibeNombre() y cargar están en el mismo script, incluso allí mismo hay una función OnGUI() que llama al método cargar() y se ejecuta perfecto.
El segundo:
Este va de convertir de un char[] a un string. En la foto que adjunto pueden ver el método. La línea señalada es una trampita para poder cargar por ahora y seguir probando el juego. La cosa es que cuando busco los archivos creados toma el nombre completo y su extensión, ejemplo: "rene.rs". Yo solo quiero el "rene", asi que recorro el string como un arreglo de caracteres y voy añadiendo a mi char[] hasta que me encuentro con el punto de la extensión del archivo. El problema es a la hora de convertir ese char[] = [r][e][n][e] ha un string = rene. Simplemente no he encontrado forma, usé ToString() pero no funciona.Por favor espero la ayuda de alguien, en cuanto aclare estas dudas y lo *** un poquito lo pongo en la sección de aportes.Gracias.



http://unityspain.com/applications/core/interface/file/attachment.php?id=9389">savLoa.cs

Error nº1
void Update () { _FileName = _PlayerName + ".rs";
}

public void recibeNombre (string nuevoNombre) {
    _PlayerName = nuevoNombre;
    cargar ();
}
El codigo anterior entiendo que es como pretendias que quedara (sin tener que utilizar el Invoke). Si tuviera que apostar, diria que el error es muy tonto ... esta en funcionamiento de los Monobehaviour public void recibeNombre (string nuevoNombre) {
    _PlayerName = nuevoNombre;
    _FileName = _PlayerName + ".rs";
    cargar ();
}Para el segundo error no hace falta tantas vueltas ... si necesitas coger la primera parte de una cadena hasta el primer punto (eliminar la extension), es tan rapido como string nuevoNombre = nombrePerfil.Split (".")
  • ;Suerte con ese rpgAviso importante : no me he descargado el archivo, por lo que solo hablo en funcion a lo que se puede observar en las imagenes. Asi que si es una tonteria lo que estoy diciendo pido disculpas. 

Etiquetas: