Hueggvo 3 Report post Posted April 24, 2020 Estoy haciendo un juego para móviles y llevo varios días peleandome por como hacerlo, dudo que lo esté haciendo de forma correcto, pero lo explico. Tengo un script botón que se llama "cambiar_skin", a cada boton le doy un numero diferente como parámetro. Entonces cada número es una skin diferente. Ahora llega el peluseo tengo un objeto que es donde guardo las skins, entonces al cambiar de numero se cambia la skins. Mi problema es el siguiente: estoy intentando guardar en un playerpref.getint las skins que tengo (si es 0 no la tengo, y si es 1 si), el problema es que no se porque no se me cambia el dato. Dudo que esta sea la forma correcta de hacer una tienda, asi que si igualmente alguien me puede echar una mano lo agradecería. Share this post Link to post Share on other sites
Antonio 185 Report post Posted April 25, 2020 Hola Hueggvo Yo todavía no he intentado hacer la tienda online, no obstante tengo guardado este tutorial para cuando me vaya a enfrentar a ello: https://learn.unity.com/tutorial/unity-iap Explica como integrar el package In App purchases. Sobre lo que llevas, puedes intentar guardar las compras en player pref, pero eso es un archivo que se guarda localmente en el móvil, si el jugador lo borra (liberando espacio) o cambia de móvil, perdería la información de las compras que haya hecho. Creo que playerpref puede ser útil para guardar la partida, las configuraciones que tenga puesta el jugador (idioma, volumen, y tal), pero para las compras con dinero real, yo no lo usaría. Ese tutorial con el I.A.P. incluye una función para restaurar los consumables que haya comprado el cliente, (nuevamente tengo que ponerlo en práctica para saber más), confío que si estás con las manos en ello, esa información te puede venir bien, ver como lo hacen y tal. Share this post Link to post Share on other sites
Alex 43 Report post Posted April 25, 2020 (edited) Hola. Primero: No es necesario llamar la función Start porque este no retorna ningún valor local. Segundo: En el if() completa el PlayerPrefs.GetInt("skin0", 0) por si los prefs no existen, se tome a 0 por defecto. Tercero: Revisa bien la lógica del código. Estás preguntando si skin0 es = 0 y si eso se cumple, sigue una comprobación de las monedas del jugador y las requeridas, así se cumpla el if() no pasará nada porque no estás declarando ningúna acción de compra! Usa SetInt, no GetInt. PlayerPrefs.SetInt("skin0", 1); Pd: No te recomiendo usar switch en Update, puedes crear una función pública y luego llamar a esta cuando quieras cambiar la skin. Usa algo como: public void ChangeSkin(int num_skin), luego lo colocas en el botón y agregas el número de la skin que quieres seleccionar. Edited April 25, 2020 by Alex 1 Share this post Link to post Share on other sites