public override void SimulateController() { IComandoMoverCartaInput input = ComandoMoverCarta.Create(); if (moviendo) { Ray rayo = Camera.main.ScreenPointToRay(Input.mousePosition); if (planoMovimiento.Raycast(rayo, out distancia)) { transform.position = rayo.GetPoint(distancia); input.click = rayo.GetPoint(distancia); //distancia del rayo input.position = transform.position + distanciaInicial; } entity.QueueInput(input); } if (tiempoTranscurrido < tiempoExtraMoviendo) { input.position = transform.position + distanciaInicial; entity.QueueInput(input); } if (hayQueRotar) { hayQueRotar = false; v3inicio = transform.position; StartCoroutine(Rotandome()); } if (hayQueRotarRapido) { hayQueRotarRapido = false; v3inicio = transform.position; RotarRapido(); } if (rotando) { input.position = transform.position; input.rotation = transform.rotation; entity.QueueInput(input); } if (hayQueMover) { } //Debug.LogFormat("moviendo es {0}, rotando es {1}, trasladando es {2}", moviendo, rotando, trasladando); }
public override void ExecuteCommand(Command command, bool resetState) { ComandoMoverCarta cmd = (ComandoMoverCarta)command; //Debug.Log("Comando ejecutado: " + cmd); if (resetState) { //owner has sent a correction to the controller transform.position = cmd.Result.posicion; } else { if (cmd.Input.click != Vector3.zero) { transform.position = cmd.Input.position; } cmd.Result.posicion = transform.position; } transform.position = cmd.Result.posicion; }