Jump to content
UnitySpain

Search the Community

Showing results for tags 'networkmanager'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Inicio
    • Proyectos
    • Offtopic
    • Unity Feeds
    • Website
  • Mesa de ayuda
    • Unity
    • Arte
    • Otras Especialidades
    • Builds & Dispositivos
  • Aportes de la Comunidad
    • Recursos
    • Eventos
    • Buenas Prácticas
  • Bolsa de trabajo & Colaboraciones
    • Ofertas y Demandas
  • Post Antiguos
    • General (Antiguo)

Blogs

  • byGui

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Especialidad

Found 2 results

  1. Buenas a todos. Me he lanzado a hacer un juego de proyecto fin de carrera y me he metido (creo que ha sido una mala idea dios...) a trastear un poco con el tema de multjugador. Me he atascado bastante y estoy bastante desesperado. Agradezco de antemano cualquier ayuda sobre el tema. Es posible que haya cosas que estén mal planteadas, he intentado hacerlo lo menos complicado posible. El proyecto trata de un juego de minigolf, que tiene por una parte modo solitario, y por otra multijugador. Lo único que quiero hacer es a nivel de LAN. Hasta ahora he conseguido esto. El problema ha venido cuando he empezado con el tema de delimitar la acción de los jugadores para que solo manejen su propia pelota. Adjunto una imagen de cómo tengo estructurado el prefab para el multijugador. Lo explico un poco por encima. Es la primera vez que hago un poco más grande de lo que suele ser hacerte una escena y cacharrear con ella. Dentro del gameobject ConjuntoMultijugador tengo otro gameobject vacío llamado jugador que tiene varias partes, la pelota que tiene un rigidbody, el pivoteAyudaVisual que sirve para mostrar una barra de potencia (también adjunto imagen), pivoteCamara sirve para manejar la cámara la cual se maneja de forma orbital con el ratón, RayCastUltimaPos lo utilizo para tener siempre debajo de la pelota un raycast y mediante tags ir guardando la posición de la pelota para que cuando se salga, vuelva a la ultima posición, y por en medio de algunos gameobjects he puesto algún script a modo de enlace para que se muevan a la vez que la pelota y de esa forma la barra de potencia siempre parta del la pelota etc. El otro gameobject que tengo al mismo nivel que jugador contiene cosas para el HUD. No se si estará bien planteado pero en un principio la idea es que cada uno tenga y vea su propio HUD. Lo que he visto hasta el momento del tema de networking un poco en resumen, es que cada prefab tiene que tener su propio network identity. Con la propiedad isLocalPlayer sacada del network identity puedo limitar las acciones de los jugadores para que cuando estén en LAN cada uno mueva su pelota. Aquí he presupuesto que con un network identity basta ya que luego desde cualquier objeto si lo llamas es suficiente para usar la propiedad isLocalPlayer. El problema que tengo desde hace ya un tiempo y que estoy muy desesperado es que no se sincronizan los jugadores, es decir, estando en la partida, si un jugador se mueve, el resto de jugadores no lo ve. Las pelotas del resto de juadores están en el escenario pero a ojos de otro jugador no se mueven. Estuve investigando y por lo que he visto, con el componente Network Transformer debería bastar. El problema es que no se muy bien donde ponerlo y me ha surgido otra duda. Si el network transform sirve para sincronizar pero el objeto está compuesto de varias partes y además una de ellas con rigidbody, tengo que usar un network transform en cada parte? Estuve haciendo pruebas y cuando asocio un network transform a un gameobject, automáticamente se crea un network identity sobre ese objeto y esto hace que me salte el warning de que hay demasiados network identity. Es un warning pero entiendo que si me sale es porque no se debe tener más de uno. Estoy ya desesperado y es horrible hacer pruebas en este punto porque cuando juego con los network transform, al intentar quitarlos muchas veces no sé por qué se me cierra Unity por un error sin explicación alguna. Ni me he molestado en rellenar el parte de errores porque en 3 ocasiones anteriores en errores similares sin explicación lo único que me han dicho es que no han podido reproducir el error. Sé que dentro del network transform hay una opción para especificar una sincronización según sea 2D, 3D, con rigidbody, etc. La pelota tiene rigidbody pero el Network Transform está en ConjuntoMultijugador. No sé muy bien hacia donde tirar. Es lo único que me falta para poder dar por cerrado esto y no sé muy bien cómo manejar esto ya. Muchas gracias de antemano por cualquier cosa que me pueda ayudar. Un saludo.
  2. Buenas a todos, Tras un año de experiencia con Unity me ha dado por intentar añadir multiplayer a un juego que tengo. Lo que estoy intentando ahora es en un tablero, spawnear dos jugadores, uno hostea y el otro se conecta a el, los jugadores lo unico que pueden hacer es se arrastrados con teclado, no tienen mas funcionalidad ahora mismo ya que pretendo ir añadiendo las opciones de multijugador poco a poco. Mi problema surge cuando inicio el servidor, el personaje que hostea se ve perfect y al conectarse el cliente también se ve bien dentro del host pero en el cliente me tira un error: Spawn scene object not found for 1 Spawn scene object not found for 2 Estos dos fallos se producen porque el server carga antes que la escena del cliente( o eso creo por lo que he ido investigando por internet). También dicen que la solución reside en aplicar el spawn en el OnServerReady pero igualmente da el mismo fallo. El codigo de mi custom networkmanager public class NetManager : NetworkManager { public GameObject spawnZone; public override void OnServerAddPlayer(NetworkConnection conn, short playerControllerId){ //GameObject player = Instantiate (base.playerPrefab); //player.transform.SetParent (spawnZone.transform, false); //NetworkServer.AddPlayerForConnection(conn,player, playerControllerId); Debug.Log("Datos del jugador añadido: " + conn); } public override void OnServerReady (NetworkConnection conn){ base.OnServerReady(conn); GameObject player = Instantiate (base.playerPrefab); player.transform.SetParent (spawnZone.transform, false); } }Lo comentado es para spawnear en el onServerReady, pero vamos, que da el mismo error, ¿Alguien sabe del tema? Un saludo y gracias.
×
×
  • Create New...