Version: 2017.3

NetworkTransform.clientMoveCallback2D

切换到手册
public Networking.NetworkTransform.ClientMoveCallback2D clientMoveCallback2D ;

描述

可用于在服务器上验证客户端授权对象移动情况的回调。

此回调版本适用于使用 2D 物理设置的对象。此回调函数可能会返回 false 以完全拒绝移动请求。它还可能修改按引用传递的移动参数。

以下示例在 OnStartServer 中设置回调,并断开在多次失败后将对象移动到无效位置的客户端的连接。

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; } }

这种服务器端移动验证应与客户端移动验证配合使用。如果客户端通过作弊绕过客户端移动检查,则回调应只检测故障。

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