Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Bydark

#46
Cita de: DiegoSadiGame date=1467763031Pues esto va asi.

      guardaremos tu variable de tipo entero index de tú escript en un PlayerPrefs para saver en la otra escena lo que elegimos.
   
   
      

      Asi queda tu escrip, pero necesitamos otro que cargara el prefab
   
   

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class CharacterSelector : MonoBehaviour {
 
public List<GameObject> characterList;
public int index=0;
void Start () {

   GameObject[] characters = Resources.LoadAll<GameObject>("Prefab");
   foreach (GameObject c in characters) {
      GameObject _char = Instantiate(c) as GameObject;
      _char.name = c.name;
      _char.transform.SetParent(GameObject.Find("CharacterList").transform);
      characterList.Add(_char);
      _char.SetActive(false);
      GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
      characterList[index].SetActive(true);
 
   }
}
public void Next(){
   characterList [index].SetActive (false);
   if (index == characterList.Count - 1) {
      index = 0;
   } else {
      index++;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
public void Previous(){
   characterList [index].SetActive (false);
   if (index == 0) {
      index = characterList.Count-1;
   } else {
      index--;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
 

public void Play(){
     
      // primero guardamos el valor de index
      PlayerPrefs.SetInt ("PlayerIndex",index);
       //luego cargamos la siguiente esena
SceneManager.LoadScene ("Level7");
}
void Update(){
   characterList [index].transform.Rotate (0,0.5f,0);
}
}

   
       
   
   
      Este Script yo lo puse en la camara, y necesita un ponto donde instanciara al prefab, puedes crear un objeto bacio con el atajo ctrl + shift + N
   
   

using UnityEngine;
using System.Collections;
public class CharacterStart : MonoBehaviour {
public GameObject[] Player;
public GameObject StartPosition;
public int Index;
// Use this for initialization
void Start () {
   //El valor que guardamos aqui se lo pasamos a index
   Index = PlayerPrefs.GetInt ("PlayerIndex",0);
   //con esta linea instanciamos el prefab en la posicion en la que pusiste el objeto bacio
   Instantiate (Player [Index], StartPosition.transform.position, Quaternion.identity);
}
}

   
      en el inspector añades tus prefabs a player y el objeto bacio en StratPosition, la verdad es bastante simple. espero te sirva.
   


Wow la verdad es que visto como lo pones parece bastante fácil jaja, acabo de probarlo pero a la hora de jugar me salta un error que te dejo aquí en una imagen.
 
¿Este error puede deberse a que ya tengo creado dos puntos de spawn para el player?
 
Un saludo y mil gracias de nuevo, estoy aprendiendo bastante con tu ayuda :D .
 
 
 
 
 
EDITO:
 
 
 
El error era que no había metido los prefabs pero ahora nace otro error distinto..
 
 
 
Resulta que si que me instancia el personaje elegido, pero el juego no inicia con el, en el prefab de mi network manager sigue estando el prefab de siempre y el que instanciamos gracias a tu script aparece como un objeto más pero no puedo jugar con el, no se si me explico, se instancia correctamente pero no puedo usarlo de personaje principal ya que no es el prefab del network manager...
 
 
 
MIl gracias de nuevo, a ver si a la próxima logramos dar con la solución..jaja :D
 
 
#47
Cita de: DiegoSadiGame date=1467760728Hola y de nada  ahora boy a probar algo que se me ocurrio para hacerlo,  si sirve te aviso.
   


Mil gracias de verdad .
#48
Cita de: DiegoSadiGame date=1467759737Bueno para cargar otra escena tienes que añadir esto a tú excript
   
   

using UnityEngine;
using System.Collections;
//Añades esta linea
using UnityEngine.SceneManagement;
public class CharacterSelector : MonoBehaviour {

public void Play(){
//esta linea cargaria la escena entre comillas
   SceneManager.LoadScene ("Nivel1");
// SceneManager.LoadScene (0);
//o con el numero correcpondiente de la escena
}

}

   
       tiernes que tener tu Scena creada y añadida en  file>>Build Settings adjunto una imagen de ejemplo, y ya cada vez que preciones play se cargaria la escena, es la manera mas simple.
   
   
      
   


Muchas gracias Diego, eso arregla la parte del problema que menos me preocupaba jeje, pero aun así muchísimas gracias.
 
 
 
¿Tienes alguna idea sobre cambiar el prefab del newtwork manager con un script?
 
 
 
Es decir, lo que quiero es cambiar es poner el prefab que elijo en la escena 1, que es la de selección del personaje.
 
 
 
Un saludo y muchas gracias por contestar, llevo dos días completos intentándolo y no encuentro la manera.
 
Cita de: Bydark date=1467760373Muchas gracias Diego, eso arregla la parte del problema que menos me preocupaba jeje, pero aun así muchísimas gracias.
   
   
       
   
   
      ¿Tienes alguna idea sobre cambiar el prefab del network manager con un script?
   
   
      Es decir, lo que quiero es cambiar es poner el prefab que elijo en la escena 1, que es la de selección del personaje.
   
   
       
   
   
      Un saludo y muchas gracias por contestar, llevo dos días completos intentándolo y no encuentro la manera.
   


 
#49
Nadie sabe ayudarme? :(
#50
Cita de: JordiUnity date=1467669553es esto lo que necesitas? http://forum.unity3d.com/threads/how-to-setup-different-player-prefabs.332507/
   


Diría que si aunque creo que lo mío es más sencillo que lo que se habla en el post que me has pasado.
 
Solo pretendo modificar el prefab del network manager en función del personaje que haya elegido la escena 1.
 
Muchas gracias, veo que los tiros van por ahí pero sigo sin saber que hacer...jajaja
 
 
 
Un saludo.
#51
General (Antiguo) / Muy buenas!
Julio 04, 2016, 10:32:23 PM
Cita de: pioj date=1467662020Bienvenido a la Comunidad.
   


Gracias! No se si será abusar de ti pero podrías pasarte y leer mi post para ver si por casualidad sabes la solución? Un saludo :D
 
 
 
http://www.unityspain.com/topic/36108-selección-de-personaje-confirmación-y-cargar-siguiente-escena/#comment-132063

 
#52
Dejo un vídeo de lo que llevo de la escena de elegir personaje.
 
Mi intención es que al darle a "Play" elija ese prefab y cargue la siguiente escena.
 
https://www.youtube.com/watch?v=kgbTObhaUpI&feature=youtu.be
 
VUELVO A EDITAR:
 
He encontrado lo que necesito exactamente para que funcione pero no lo consigo. Os explico:
 

  •    La escena 1 es el selector de personajes.


  •    La escena 2 es el lobby, donde elegimos el modo de juego.


  •    La escena 3 es el gameplay.


Lo que necesito es que al darle al Play en la escena 1, elija ese prefab y lo sustituya en el NETWORK MANAGER que tengo en el Lobby, ya que éste es el que me genera el prefab en la escena 3.
 
Espero haberme explicado, sólo necesito saber como cambiar el valor del NETWORK MANAGER de la escena 2, con la elección de la escena 1, teniendo en cuenta que en la escena 1 no hay network manager.
 
A ver si ahora os lo he puesto más fácil :) , un saludo enorme y perdonad que sea así de pesado, llevo desde las 9:00 de la mañana con esto y quería dejar el tema bien claro antes de rendirme por hoy jeje.
 
 
#53
Mi problema es el siguiente, estoy haciendo una escena donde elegir personaje, el cambio de personaje se realiza, pero necesito confirmar que quiero usar ese prefab y tenerlo en la siguiente escena listo para ser cargado.
 
Os dejo el código como lo llevo hasta ahora, como podréis ver, el "Play" funciona igual que el botón "Next" ya que realmente no se seleccionar el prefab y pasar a otra escena..
 
¿Alguna ayuda? Mil gracias!
 
 
 

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class CharacterSelector : MonoBehaviour {
 
public List<GameObject> characterList;
public int index=0;
void Start () {

   GameObject[] characters = Resources.LoadAll<GameObject>("Prefab");
   foreach (GameObject c in characters) {
      GameObject _char = Instantiate(c) as GameObject;
      _char.name = c.name;
      _char.transform.SetParent(GameObject.Find("CharacterList").transform);
      characterList.Add(_char);
      _char.SetActive(false);
      GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
      characterList[index].SetActive(true);
 
   }
}
public void Next(){
   characterList [index].SetActive (false);
   if (index == characterList.Count - 1) {
      index = 0;
   } else {
      index++;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
public void Previous(){
   characterList [index].SetActive (false);
   if (index == 0) {
      index = characterList.Count-1;
   } else {
      index--;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
 

public void Play(){
   characterList [index].SetActive (false);
   if (index == characterList.Count - 1) {
      index = 0;
   } else {
      index++;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
}
void Update(){
   characterList [index].transform.Rotate (0,0.5f,0);
}
}

 
 
#54
Cita de: leocub58 date=1467649394técnicamente solo necesitas presentarte. Si ya lo hiciste contacta con el administrador @pioj
   


Gracias, ya me he presentado pero ha sido hace poco, quizás hay que esperar más, sino contactaré con el, un saludo :) .
 
 
 
EDITO: Ya me deja, voy a poner el post en su sitio, siento el desorden xD.
 
 
#55
Antes de nada siento enormemente tener que ponerlo aquí, pero no se cuantos mensajes necesito para postear en otras secciones del foro..perdón!!
 
 
 
Mi problema es el siguiente, estoy haciendo una escena donde elegir personaje, el cambio de personaje se realiza, pero necesito confirmar que quiero usar ese prefab y tenerlo en la siguiente escena listo para ser cargado.
 
Os dejo el código como lo llevo hasta ahora, como podréis ver, el "Play" funciona igual que el botón "Next" ya que realmente no se seleccionar el prefab y pasar a otra escena..
 
¿Alguna ayuda? Mil gracias!
 
 
 

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
public class CharacterSelector : MonoBehaviour {
 
public List<GameObject> characterList;
public int index=0;
void Start () {

   GameObject[] characters = Resources.LoadAll<GameObject>("Prefab");
   foreach (GameObject c in characters) {
      GameObject _char = Instantiate(c) as GameObject;
      _char.name = c.name;
      _char.transform.SetParent(GameObject.Find("CharacterList").transform);
      characterList.Add(_char);
      _char.SetActive(false);
      GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
      characterList[index].SetActive(true);
 
   }
}
public void Next(){
   characterList [index].SetActive (false);
   if (index == characterList.Count - 1) {
      index = 0;
   } else {
      index++;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
public void Previous(){
   characterList [index].SetActive (false);
   if (index == 0) {
      index = characterList.Count-1;
   } else {
      index--;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
   
}
 

public void Play(){
   characterList [index].SetActive (false);
   if (index == characterList.Count - 1) {
      index = 0;
   } else {
      index++;
   }
   GameObject.Find("CharName").GetComponent<Text>().text = characterList[index].name;
   characterList [index].SetActive (true);
}
void Update(){
   characterList [index].transform.Rotate (0,0.5f,0);
}
}

 
 
#56
General (Antiguo) / Muy buenas!
Julio 04, 2016, 05:41:19 PM
Bueno llevo ya tiempo registrado pero aprovecho para presentarme, actualmente estoy haciendo un juego a si que os dispararé algunas dudas que me van surgiendo, un saludo !! :D
 
 
 
PD: Cuantos mensajes tengo que tener para postear en las demás secciones del foro? No sabía que no se podía :(