- Home /
Question by
eric3691215 · Sep 16, 2020 at 08:01 PM ·
first person controller
Unity is slightly laggy in the game in the editor but even more laggy in the built version.
Unity is laggy when using the game preview in the editor. There's a stutter that is hard to explain. The framerate is high but there is still this weird stutter. It is even worse when I build the game and play it from there. I looked online and tried to turn off vsync as well as change the graphic settings, but nothing seems to be fixing it. I used Brackey's first person controller tutorial to make my first person controller.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public CharacterController controller;
public GameObject character;
public GameObject gun;
public Camera player;
public ParticleSystem wind;
public static float speed = 8f;
public float gravity = -9.81f;
public float jumpHeight = 3f;
public KeyCode sprint;
public KeyCode crouch;
public Transform groundCheck;
public float groundDistance = 0.4f;
public LayerMask groundMask;
Vector3 velocity;
bool isGrounded;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void FixedUpdate()
{
/*if (Input.GetKeyDown(sprint))
{
speed = 12;
player.fieldOfView = 68;
wind.Play();
wind.enableEmission = true;
}
else if (Input.GetKeyUp(sprint))
{
speed = 8;
player.fieldOfView = 60;
wind.enableEmission = false;
wind.Stop();
}*/
isGrounded = Physics.CheckSphere(groundCheck.position, groundDistance, groundMask);
if(isGrounded && velocity.y < 0)
{
velocity.y = -2f;
}
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Vector3 move = transform.right * x + transform.forward * z;
controller.Move(move * speed * Time.deltaTime);
if(Input.GetButtonDown("Jump") && isGrounded)
{
velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);
}
velocity.y += gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
/*if (Input.GetKeyDown(crouch))
{
speed = 6;
character.transform.localScale = new Vector3(1, .4f, 1);
gun.transform.localScale = new Vector3(.40686f, 1, .40686f);
}
else if (Input.GetKeyUp(crouch))
{
speed = 8;
character.transform.localScale = new Vector3(1, 1, 1);
gun.transform.localScale = new Vector3(.40686f, .40686f, .40686f);
}*/
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MouseLook : MonoBehaviour
{
public float mouseSensitivity = 100f;
public Transform playerBody;
private float xRotation = 0f;
// Start is called before the first frame update
void Start()
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void FixedUpdate()
{
float mouseX = Input.GetAxis("Mouse X") * mouseSensitivity * Time.deltaTime;
float mouseY = Input.GetAxis("Mouse Y") * mouseSensitivity * Time.deltaTime;
xRotation -= mouseY;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
playerBody.Rotate(Vector3.up * mouseX);
}
}
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613011927im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
How to change scenes using box collider and first person controller? 1 Answer
First Person Controller - Mouse look doesn't work 1 Answer
when I add a first person, can not move in game mode. 0 Answers
Where are First Person Controller inputs located? 1 Answer
windows.store tablet move button 0 Answers