Tengo un proyecto en el que uso mirror (unet 2.0 :P) para hacer un juego WebGL simple de baja poli en Unity. el juego funciona muy bien. Ahora quiero enviar una transmisión de cámara web a través de la red. Quiero hacer esto para cada jugador.
Logré que la cámara funcionara localmente. Ahora quiero que se ejecute a través de la red. Hice una matriz Colors32[] que contiene la imagen, también funciona localmente. Solo si trato de enviarlo a través de la red usando una función [Comando] recibo el mensaje de que mi paquete es demasiado grande. Escuché que dividir un paquete genera mucha latencia, así que probé esta solución, sendTextures , pero no funciona bien con mirror. Solo obtengo un cuadro (si tengo suerte) si enciendo mi administrador de red.
¿Tienen algún consejo para mí para que funcione?
Este es el código que tengo hasta ahora:
public class WebCamScript : NetworkBehaviour { static WebCamTexture camTexture; Color32[] data; private int width = 640, height = 480; public GameObject screen; void Start() { screen = GameObject.Find("screen"); if (camTexture == null) camTexture = new WebCamTexture(width, height); data = new Color32[width * height]; if (!camTexture.isPlaying) camTexture.Play(); } // Update is called once per frame void Update() { CmdSendCam(data.Length, camTexture.GetPixels32(data)); } [Command] void CmdSendCam(int length, Color32[] receivedImage) { /* Texture2D t = new Texture2D(width, height); t.SetPixels32(receivedImage); t.Apply(); screen.GetComponent<Renderer>().material.mainTexture = t; */ } }