Devuelve true si este objeto es el que representa al jugador en la máquina local.
En juegos multijugador, hay múltiples instancias del objeto Player. El cliente necesita saber cuál de ellas es "de él" para que solo ese jugador procese la entrada y posiblemente también tenga añadida una cámara. La función IsLocalPlayer devolverá true solo para la instancia del jugador en la máquina local, para que pueda ser usada al filtrar la entrada en jugadores no locales.
Este código de ejemplo muestra un procesamiento de entrada que afectará únicamente al jugador local.
#pragma strict public class Player extends NetworkBehaviour { var moveX: int = 0; var moveY: int = 0; function Update() { if (!isLocalPlayer) { return ; } // input handling for local player only var oldMoveX: int = moveX; var oldMoveY: int = 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("Move", moveX, moveY); } } @Command function CmdMove(dx: int, dy: int) { // move here } }
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("Move", moveX, moveY); } }
[Command] void CmdMove(int dx, int dy) { // move here } }