En Mirror (una popular API de red para Unity), SetScope
permite controlar qué objetos de red son visibles para cada jugador. Se usa para optimizar la replicación de objetos y mejorar el rendimiento en juegos multijugador.
El método SetScope(NetworkIdentity netIdentity, bool visible)
permite definir si un objeto de red (NetworkIdentity
) es visible para un cliente específico. Esto es útil para ocultar objetos que no están en la zona de interés de un jugador, reduciendo la carga de red.
void SetScope(NetworkIdentity netIdentity, bool visible)
Parámetro | Tipo | Descripción |
---|---|---|
netIdentity
|
NetworkIdentity
|
Identidad de red del objeto que queremos ocultar o mostrar. |
visible
|
bool
|
true para hacer el objeto visible, false para ocultarlo.
|
En este ejemplo, un servidor controla la visibilidad de un objeto para un cliente en función de la distancia:
using Mirror;
public class VisibilityController : NetworkBehaviour
{
public NetworkIdentity targetObject; // Objeto cuya visibilidad queremos controlar
public float visibilityRange = 10f; // Distancia de visibilidad
void Update()
{
foreach (var conn in NetworkServer.connections.Values)
{
bool isVisible = Vector3.Distance(conn.identity.transform.position, targetObject.transform.position) < visibilityRange;
conn.SetScope(targetObject, isVisible);
}
}
}
El método SetScope
en Mirror es una herramienta poderosa para optimizar la replicación de objetos en juegos multijugador, reduciendo el tráfico de red y mejorando el rendimiento.
Jorge García
Fullstack developer