- Home /
Question by
CrashTheSniper_ · Aug 31, 2015 at 03:26 PM ·
frameratetime.deltatimevsync
Time.deltaTime problem
using UnityEngine;
using System.Collections;
public class FPS_Controller : MonoBehaviour
{
public GameObject playerBody, playerCamera;
private float mouseX, mouseY, walkX, walkZ;
[Range (1f,10f)]
public float mouseSpeed, walkSpeed,;
void Update ()
{
mouseX = mouseX + Input.GetAxis("Mouse X") * mouseSpeed * 10f;
mouseY = mouseY + Input.GetAxis("Mouse Y") * mouseSpeed * 10f;
if(mouseY > 90)
{
mouseY = 90;
}
if(mouseY < -80)
{
mouseY = -80;
}
playerCamera.transform.localEulerAngles = (Vector3.right * -mouseY);
playerBody.transform.localEulerAngles = new Vector3 (0f, mouseX, 0f);
if(Input.GetKey(KeyCode.W))
{
playerBody.transform.position += playerBody.transform.forward * Time.deltaTime * walkSpeed;
}
if(Input.GetKey(KeyCode.S))
{
playerBody.transform.position -= playerBody.transform.forward * Time.deltaTime * walkSpeed;
}
if(Input.GetKey(KeyCode.A))
{
playerBody.transform.position -= playerBody.transform.right * Time.deltaTime * walkSpeed;
}
if(Input.GetKey(KeyCode.D))
{
playerBody.transform.position += playerBody.transform.right * Time.deltaTime * walkSpeed;
}
}
}
This code work very well but when i disable vSync the camera move very slowly. I also tryed with FixedUpdate, but doesnt work. The walk Part work with VSync enabled or disabled. Only the camera rotation doesnt work. Any solution?
Comment