PosSnapShot Move(KeyCode arrow, PosSnapShot previous) { int dx = 0; int dy = 0; switch (arrow) { case KeyCode.UpArrow: dy = 1; break; case KeyCode.DownArrow: dy = -1; break; case KeyCode.RightArrow: dx = 1; break; case KeyCode.LeftArrow: dx = -1; break; } currentPosz.age = 1 + previous.age; currentPosz.position = new Vector3(dx + previous.position.x, dy + previous.position.y, 0); return(currentPosz); }
void OnServerStateChanged(PosSnapShot serverPos) { if (!isServer && !isLocalPlayer) { PosSnapShotZ temp = new PosSnapShotZ(); temp.position = serverPos.position; temp.age = serverPos.age; if (!((IList)recordedPos).Contains(temp)) { if (temp.age > lastAge) { recordedPos.Add(temp); lastAge = temp.age; } } } }
[Command(channel = 0)] void CmdSendPos(KeyCode arrow, PosSnapShot previous) { serverPosz = Move(arrow, previous); }