Descripción

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

Esta versión del callback funciona con objetos que utiliza física 3D. La función callback puede retorna false para rechazar la solicitud de movimiento completamente. Puede modificar los parámetros del movimiento - que son pasados 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 Vector3 position, ref Vector3 velocity, ref Quaternion 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>().clientMoveCallback3D = 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