Character controller updates less in fullscreen
I've made a simple hallway runner movement with walljumps, and when testing it in the small preview window, everything ran smoothly with no problems. However, whenever I try testing it at a higher resolution ("maximize on play" option or exported fullscreen), the character controller's movement updates less frequently. At first, I thought it was a huge framerate drop, until I put an animated part of the level onscreen and saw that it was moving at the desired framerate.
To move my character, I simply use a Vector3 called moveDirection, and use "controller.Move(moveDirection * Time.deltaTime);". Does anyone know what I'm doing wrong?
Code: float leftvelright = 0.0f; public float jumpSpeed = 10.0F; public float gravity = 30.0F; private Vector3 moveDirection = Vector3.zero; public static float runSpeed=5.0f; public static bool dead = false;
void Update () {
if (runSpeed < 20.0f) {
runSpeed = runSpeed + 0.05f*Time.deltaTime;
print (runSpeed);
}
if (dead == true) {
leftvelright = 0;
}
//print (leftvelright)
CharacterController controller = GetComponent<CharacterController>();
if (leftvelright < 5 && leftvelright >= 0 && Input.GetAxis ("Horizontal") > 0 || leftvelright > -5 && leftvelright <= 0 && Input.GetAxis ("Horizontal") < 0) {
leftvelright = leftvelright + (Input.GetAxis ("Horizontal") * Time.deltaTime * 50);
//steer
}
if (leftvelright <= 5 && leftvelright < 0 && Input.GetAxis ("Horizontal") > 0 || leftvelright >= -5 && leftvelright > 0 && Input.GetAxis ("Horizontal") < 0) {
leftvelright = leftvelright + (Input.GetAxis ("Horizontal") * Time.deltaTime * 50);
//reversedirection
}
if (Input.GetAxis ("Horizontal") == 0 && leftvelright < 0) {
leftvelright = leftvelright + (0-leftvelright)*10*Time.deltaTime;
//stop
}
if (Input.GetAxis ("Horizontal") == 0 && leftvelright > 0) {
leftvelright = leftvelright - leftvelright*10*Time.deltaTime;
//stop
}
if (leftvelright > 10)
leftvelright = 10;
if (leftvelright < -10)
leftvelright = -10;
if (controller.isGrounded) {
moveDirection = new Vector3 (leftvelright, 0, 0);
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
moveDirection.x = leftvelright;
moveDirection.y -= gravity * Time.deltaTime;
moveDirection.z = runSpeed;
controller.Move(moveDirection * Time.deltaTime);
}
void OnControllerColliderHit(ControllerColliderHit hit){
if (hit.gameObject.tag == "Wall") {
moveDirection = new Vector3 (leftvelright, -1, 0);
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
if (moveDirection.y > jumpSpeed)
moveDirection.y = jumpSpeed;
leftvelright = -leftvelright * 2.0f;
}
}
}
You would typically just link the full contents of your Update() function, or w/e you were using to move it. One line doesn't really help the problem to be diagnosed.
Your answer
![](https://koobas.hobune.stream/wayback/20220612073519im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
[solved] Playermovement script 1 Answer
Player still move left&right in MenuUI 0 Answers
Most suitable way to make player move for an open world environment? 0 Answers
Character Movement bug. 0 Answers
Movement When Character is in air. 0 Answers