Scan to open on your phone
Point a camera at the QR code - it opens this exact paste, no app needed.
https://codepastes.com/zzgsr8jyfc9k61byuntitledPlain Text
using UnityEngine;
[RequireComponent(typeof(CharacterController))]
public class PlayerController : MonoBehaviour
{
public Camera playerCamera;
public float walkSpeed = 6f;
public float lookSpeed = 2f;
public float lookXLimit = 45f;
public float gravity = 20f;
private CharacterController characterController;
private Vector3 moveDirection = Vector3.zero;
private float rotationX = 0f;
[HideInInspector]
public bool canMove = true;
void Start()
{
characterController = GetComponent<CharacterController>();
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
void Update()
{
// --- Camera Rotation ---
if (canMove)
{
rotationX += -Input.GetAxis("Mouse Y") * lookSpeed;
rotationX = Mathf.Clamp(rotationX, -lookXLimit, lookXLimit);
playerCamera.transform.localRotation = Quaternion.Euler(rotationX, 0, 0);
transform.rotation *= Quaternion.Euler(0, Input.GetAxis("Mouse X") * lookSpeed, 0);
}
// --- Movement Calculation ---
Vector3 forward = transform.TransformDirection(Vector3.forward);
Vector3 right = transform.TransformDirection(Vector3.right);
float curSpeedX = canMove ? walkSpeed * Input.GetAxis("Vertical") : 0;
float curSpeedY = canMove ? walkSpeed * Input.GetAxis("Horizontal") : 0;
float movementDirectionY = moveDirection.y;
moveDirection = (forward * curSpeedX) + (right * curSpeedY);
// Apply Gravity
if (!characterController.isGrounded)
{
moveDirection.y = movementDirectionY - (gravity * Time.deltaTime);
}
else
{
moveDirection.y = -0.5f; // Small downward force to keep grounded
}
// Move the controller
characterController.Move(moveDirection * Time.deltaTime);
}
}1,933 chars · codepastes.com