Descripción

Un callback que puede ser utilizado para validar en el servidor, el movimiento de objetos cliente de autoridad.

Esta versión callback funciona con objetos que usan física 2D. La función callback puede devolver false para rechazar la solicitud de movimiento por completo. También puede modificar los parámetros de movimiento - que se pasan por referencia.

El ejemplo siguiente establece el callback en OnStartServer y desconectará un cliente que mueve un objeto a una posición no válida después de una serie de fallos.

using UnityEngine;
using UnityEngine.Networking;

public class MyMover : NetworkManager { public int cheatCount = 0;

public bool ValidateMove(ref Vector2 position, ref Vector2 velocity, ref float rotation) { Debug.Log("pos:" + position); if (position.y > 9) { position.y = 9; cheatCount += 1; if (cheatCount == 10) { Invoke("DisconnectCheater", 0.1f); } }

return true; }

void DisconnectCheater() { GetComponent<NetworkIdentity>().connectionToClient.Disconnect(); }

public override void OnStartServer() { GetComponent<NetworkTransform>().clientMoveCallback2D = ValidateMove; } }

Este tipo de validación de movimientos en el lado del servidor debe utilizarse conjuntamente con la validación de movimiento del lado del cliente. El callback sólo debe detectar un error si un cliente está omitiendo las comprobaciones de movimiento del lado del cliente mediante el engaño.

Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961