void FixedUpdate() { if (Config.Instance.IsStandalone) { this.updateKeyboard(); } if (Config.Instance.UseKinect) { redirectToFrontTurnMediator.update(Time.deltaTime); } player.rigidbody.velocity = new Vector3(); // Gegen Sliden, wenn irgendwo gegengelaufen wird if (turnVelocityDegPerSec != 0.0f) { // Wenn Kinect angeschlossen, können wir um den User rotieren if (Config.Instance.UseKinect) { Vector3 pos = kinectController.getSensor(Kinect.TrackerId.HIP_CENTER); // rotieren um den Benutzer: Zur Position hin... player.transform.Translate(pos); // um diese drehen... player.transform.Rotate(Vector3.up, turnVelocityDegPerSec * Time.deltaTime); // und wieder zurück. player.transform.Translate(-pos); } else // Ansonsten um den Mittelpunkt, wie früher. { player.transform.Rotate(Vector3.up, turnVelocityDegPerSec * Time.deltaTime); } playerAvatar.transform.Rotate(Vector3.up, turnVelocityDegPerSec * Time.deltaTime); if (Network.peerType != NetworkPeerType.Disconnected) { //eigene rotation Senden observer.SendRotate(playerAvatar.transform.rotation, GameController.Instance.IsServer); } } if (upVelocityDegPerSec != 0.0f) { player.transform.Rotate(Vector3.right, upVelocityDegPerSec * Time.deltaTime); } if (rollVelocityDegPerSec != 0.0f) { player.transform.Rotate(Vector3.forward, rollVelocityDegPerSec * Time.deltaTime); } if (walkVelocityMeterPerSec != 0) { if (Config.Instance.UseKinect) { player.transform.position = (player.transform.position + player.transform.TransformDirection(kinectController.CurUserRotation) * Time.deltaTime * walkVelocityMeterPerSec); } else { player.transform.position = (player.transform.position + player.transform.forward * Time.deltaTime * walkVelocityMeterPerSec); } if (Network.peerType != NetworkPeerType.Disconnected) { //eigene Position Senden observer.SendPosition(player.transform.position, GameController.Instance.IsServer); } } }