public bool isLocalPlayer ;

描述

如果该对象代表本地机器上的玩家,则返回 true。

在多人游戏中,有多个玩家对象实例。客户端需要知道哪一个适合"它自己",以确保只有该玩家可以处理输入,并且可能有一个附加的摄像机。IsLocalPlayer 函数仅在玩家实例属于本地机器上的玩家时,才返回 true,因此它可以用来过滤掉非本地玩家的输入。

此示例仅显示本地玩家的输入处理。

using UnityEngine;
using UnityEngine.Networking;

public class Player : NetworkBehaviour { int moveX = 0; int moveY = 0;

void Update() { if (!isLocalPlayer) { return; }

// input handling for local player only int oldMoveX = moveX; int oldMoveY = moveY;

moveX = 0; moveY = 0;

if (Input.GetKey(KeyCode.LeftArrow)) { moveX -= 1; } if (Input.GetKey(KeyCode.RightArrow)) { moveX += 1; } if (Input.GetKey(KeyCode.UpArrow)) { moveY += 1; } if (Input.GetKey(KeyCode.DownArrow)) { moveY -= 1; } if (moveX != oldMoveX || moveY != oldMoveY) { CmdMove(moveX, moveY); } }

[Command] void CmdMove(int dx, int dy) { // move here } }