Files
2026-07-08 19:38:37 +03:00

42 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Camera))]
public class MouseLook : MonoBehaviour
{
public float speed = 1;
public float zoomSpeed = 1;
public bool invertY = false;
Camera cam;
Vector2 mouseStart;
Vector3 lookStart;
void Start()
{
cam = GetComponent<Camera>();
}
void Update()
{
if(Input.GetMouseButtonDown(0)){
mouseStart = Input.mousePosition;
lookStart = transform.rotation.eulerAngles;
}
if(Input.GetMouseButton(0)){
transform.rotation = Quaternion.Euler(
(Input.mousePosition.y - mouseStart.y) * (invertY?-1:1) * speed * cam.fieldOfView + lookStart.x,
(mouseStart.x - Input.mousePosition.x) * speed * cam.fieldOfView + lookStart.y,
0
);
}
if(Input.GetKey(KeyCode.W)){
cam.fieldOfView *= 1 - (zoomSpeed * Time.deltaTime);
}
if(Input.GetKey(KeyCode.S)){
cam.fieldOfView *= 1 + (zoomSpeed * Time.deltaTime);
}
}
}