Noticias

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

Menu de controles

Iniciado por KevinLastra, Noviembre 07, 2016, 02:06:32 PM

Tema anterior - Siguiente tema
Muy buenas a todos, estoy creando un menu de controles para mi juego y me salio este codigo despues de ver unos cuantos videos...
 

   public Text right, left, jump;
    private Dictionary<string, KeyCode> keys = new Dictionary<string, KeyCode>();
    private GameObject currentkey;
    void Start(){
        keys.Add("Right",(KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Right","D")));
        keys.Add("Left", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Left","A")));
        keys.Add("Jump", (KeyCode)System.Enum.Parse(typeof(KeyCode), PlayerPrefs.GetString("Jump","Space")));
        right.text = keys["Right"].ToString();
   left.text = keys["Left"].ToString();
   jump.text = keys["Jump"].ToString();
    }
public void SaveKeys(){
        foreach (var keytab in keys)
        {
           PlayerPrefs.SetString(keytab.Key, keytab.Value.ToString());
        }
        PlayerPrefs.Save();
    }
void OnGUI(){
        if(currentkey != null){
            Event e = Event.current;
            if(e.isKey){
                keys[currentkey.name] = e.keyCode;
                currentkey.transform.GetChild(0).GetComponent<Text>().text = e.keyCode.ToString();
                currentkey = null;
            }
        }
    }
    public void ChangeKey(GameObject clicked){
        currentkey = clicked;
    }

 
el problema es que necesito que la informacion que acoge este codigo sea guardada para que todos los codigos que neseciten teclas sepan cual es y donde nesecito que se guarde es en otro codigo que se llama GameMaster(contiene un DontDestroyOnLoad) que es un codigo que tengo para mantener toda la informacion del juego como la vida, los puntos, las partidas, en que nivel esta, etc....
 
Y diran porque no dejo guardado ahi, no puedo porque al ser un menu se activa y se desactiva con gameobject.setactive(false); eso hace que no se pueda observar y peor obtener informacion de ella.
 
 
 
Gracias por su atencion...

Noviembre 08, 2016, 11:25:12 AM #1 Ultima modificación: Noviembre 08, 2016, 11:28:26 AM por pioj
Para archivos de configuración, lo mejor es usar el PlayerPrefs, o guardar los datos en un ScriptableObject...
 
Por lo que veo, en tu código YA se está guardando las teclas en el PlayerPrefs, así que lo que necesitas es que esos datos queden registrados en algún GameObject, que añadas a ese GameMaster...
 
Supongo que bastará con que añadas alguna función interna que active momentáneamente ese GameMaster, para guardar los datos... ¿Dónde está el problema?

Noviembre 08, 2016, 02:51:13 PM #2 Ultima modificación: Noviembre 08, 2016, 04:59:22 PM por KevinLastra
Grasias me isiste funcionar el bombillo esque soy subnormal disculparan la molestia jeje
 
 

Aah seeee, esta maravilla que descubrí hace unos dias:
 
---> <-----
 
Es basicamente una base de datos que esta en tu proyecto y no estan atados a ningun gameObject, modifiques lo que modifiques queda igual en todas las escenas. no tiene start y update claro.
 
 

   jjaaja lo de subnormal

 
saludos

Etiquetas: