untitled

Pasted Oct 24, 2026, 9:00 AM1 file82 lines

Scan to open on your phone

Point a camera at the QR code - it opens this exact paste, no app needed.

https://codepastes.com/zzgsn6swrb6dcghj
untitled

using UnityEngine;

[RequireComponent(typeof(CharacterController))]
public class MobilePlayerController : MonoBehaviour
{
    public float moveSpeed = 5f;
    public float runSpeed = 8f;
    public float jumpHeight = 1.5f;
    public float gravity = -20f;
    public Transform cameraTransform;

    private CharacterController controller;
    private Vector3 velocity;
    private Vector2 moveInput;
    private bool jumpRequested;
    private bool running;

    void Awake()
    {
        controller = GetComponent<CharacterController>();
    }

    public void SetMoveInput(Vector2 input)
    {
        moveInput = Vector2.ClampMagnitude(input, 1f);
    }

    public void Jump()
    {
        jumpRequested = true;
    }

    public void SetRunning(bool value)
    {
        running = value;
    }

    void Update()
    {
        Vector3 forward = cameraTransform
            ? cameraTransform.forward
            : transform.forward;

        Vector3 right = cameraTransform
            ? cameraTransform.right
            : transform.right;

        forward.y = 0;
        right.y = 0;
        forward.Normalize();
        right.Normalize();

        Vector3 move = forward * moveInput.y
                     + right * moveInput.x;

        float speed = running ? runSpeed : moveSpeed;

        controller.Move(move * speed * Time.deltaTime);

        if (move.sqrMagnitude > 0.01f)
        {
            transform.rotation = Quaternion.Slerp(
                transform.rotation,
                Quaternion.LookRotation(move),
                12f * Time.deltaTime
            );
        }

        if (controller.isGrounded && velocity.y < 0)
            velocity.y = -2f;

        if (jumpRequested && controller.isGrounded)
            velocity.y = Mathf.Sqrt(jumpHeight * -2f * gravity);

        jumpRequested = false;
        velocity.y += gravity * Time.deltaTime;

        controller.Move(velocity * Time.deltaTime);
    }
}

1,940 chars · codepastes.com